Como Crear La DB De MaNGOS


Objetivo: Como Crear La DB De MaNGOS
MONTAR LA DB DE MANGOS [YTDB]



En este tutorial, os mostraré, como a partir de cero, se crea una estructura de base de datos para ManGOS, tomando como fuente de datos YTDB, y los pasos a seguir para tenerla actualizada, este esquema es válido para cualquier DB, no solo [YTDB], si bien ManGOS tiene una Jerarquía estricta para el orden de sus actualizaciones de datos, cosa que algún día implementará Trinity. Este sistema se puede adoptar con Trinity y te pude servir muy bien de ejemplo para hacer la misma operación con él, llevando una agenda de cual fue lo último que actualizamos, o sea, si eres de Trinity, también es bueno para ti.



....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


HERRAMIENTAS



MySQL:

Tener funcionado un servidor MySQL, bien sea a través de un paquete de distribución WEB como puede ser xampp, del todo recomendable, pues contiene un servidor Apache, para poder lanzar una web, de nuestro servidor, y es gratuito. O bien teniendo uno portable [versión community], de esos que lanzas y detienes con un archivo Batch. Este último es el que vamos a usar como base de nuestro tutorial, pues dispongo de uno, y te lo puedo “prestar” para que empecemos lo antes posible sin perder tiempo en dilaciones de instalación y malabares en complejas configuraciones.


Descárgalo de este Link, y descomprímelo en la misma carpeta del servidor “HDD:/ManGOS”, si no, no funcionará.


http://www.megaupload.com/?d=DEA76DTC

Pesa 8.7mg


Se lanza desde el batch “MySQL.bat” y es aconsejable cerrarlo con “MySQL_Stop.bat”, para que de esta manera, no se pierdan los posibles datos que aun permanezcan en la cache, el aspecto que tiene es este:


6izg44


El único usuario que tiene definido es administrador y es este:
USER root
PASSWORD mangos

Luego te explicaré como cambiar el password de cualquier usuario.


SQLyog ó Navicat:

Los seguidores de una, o los detractores, es indiferente cuál de ellas tengas, porque en esencia las dos sirven para el mismo propósito, y como no voy a tratar, el cómo instalarlas. Doy por supuesto que tienes alguna de ellas, yo en concreto uso SQLyog, y me he adaptado a su uso, así que me resulta indispensable para el manejo de tablas en MySQL. Por tanto lo siento por el que tenga Navicat, porque usaré my SQLyog como ejemplo, en este tutorial, aviso para navegantes, ninguna de la dos es gratuita, pero cabe la posibilidad, de que por la red encuentres una de ellas, en periodo de prueba “indefinido”. Je je je



....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


EL ENTORNO DE TRABAJO


Me vais a perdonar que me enrolle, o que os tome por torpes, ¡pero como yo lo soy!, os voy a hacer una imagen clara del trabajo que vamos a realizar, insisto en esto porque solo así, sabremos lo que estamos haciendo, el tener conocimiento de la jerarquía que siguen las actualizaciones, y entenderemos el funcionamiento de la DB, al haber sido creada por nosotros, y con el entendimiento de esta, estamos preparados ante cualquier eventualidad que no surja, y en caso de haber un error en ella tras un actualización o parche, sabremos localizar el error, y corregirlo. De verdad que es muy importante no depender de terceros para que os solucionen algo, y estar haciendo reverencias a su señoría para que por favor te atienda. Lo tengo muy visto por todas partes.


Una Jerarquía:

El Team ManGOS hace una cosa bien hecha con sus DB´s, y es enumerar dentro de ellas cual fue el ultimo parche que se les aplico, de manera que la siguiente actualización que se les haga, llevará consigo el numero de su antecesora, y lo coteja con el que hay en la DB, si este es coherente, lleva a cabo la actualización, y “siembra” su revisión, para la siguiente, y así encadenadamente.

El Core al ser compilado lleva consigo, el numeral de la revisión de la DB, para la que ha sido compilado, y lo coteja con el que hay en la DB (tabla “db_version” de la DB mangos), si es coherente, seguirá cargando tablas, si no se detendrá y te indicará la revisión que tienes “sembrada” en la DB, y para la que él fue compilado, es una buena política, que nos ayudará a la hora de actualizar las tablas, como veremos al llegar a ese paso.

characters .- Es donde están los datos de los personajes que crean los usuarios, todas las actualizaciones que se hagan en esta DB, son criticas, pero nunca son traumáticas, no llevan consigo la perdida de datos, así que no tienes de que preocuparte, pero es de sabios hacer una copia de esta, antes de aplicar cambios, más vale un porsiacaso que un “mecagoenlap….”.

Esta DB solo la actualiza el Team de ManGOS, aunque veremos como YTDB va al carro de ellos y hacen mirror (espejo) de estas con las de ellos. O sea las incluyen. Esta jerarquizada en la tabla “character_db_version”.


mangos.- Esta DB es el motor de juego, en ella está absolutamente todo lo relacionado con los NPC´ s , objetos, misiones etc. etc. , el grueso de las actualizaciones se dedican a esta, los textos que en lxxx2 traducimos residen principalmente aquí, en definitiva es la que más trastearemos, la que más peso tiene y la que más quebraderos de cabeza nos dará. Haced una copia de esta antes de manipularla.

En ella está lo que YTDB, Scriptdev2, y ManGOS actualiza, así que ambos la gestionan, es por ello, que YTDB, siempre incluye antes de cualquier revisión de su DB, una actualización con las acumulativas de ManGOS é Scriptded2, te lo explicaré más claro:


Imaginemos que ellos lanzaron la revisión R570 haciéndola compatible con la que ManGOS en ese momento tenia, pongamos que fuese la 10200, y Scriptdev2 la 1700, si ahora lanzara la R571 para hacerla compatible con una hipotética 10500 actual de ManGOS é 1750 de Scriptdev2, sacarían, previa a la R571 una actualización que diría algo así “571_corepatch_mangos_10200_to_10500.sql”, y además dentro de dicho script en SQL, si lo editamos, al final de este, nos encontraríamos una línea que diría “# SD2_1750”. Es muy importante tener esto presente, además si en el tiempo que trascurrió entre la 10200 y la 10500, ManGOS también actualizó la DB characters, ellos también sacaran un parche acumulativo, que diría algo así; “571_corepatch_characters_10200_to_10500.sql”, y seguidamente aplicaríamos el parche de su DB “571_mangos_FIX_(10500).sql”.


Así que en este ejemplo, antes de aplicar la R571 de YTDB, necesitaré aplicar 2 actualizaciones previas a este, tal que así:


“571_corepatch_characters_10200_to_10500.sql”
“571_corepatch_ mangos _10200_to_10500.sql” (recuerda dentro indicaría # SD2_1750)
“571_mangos_FIX_(10500).sql”


Repito es de vital importancia saber por donde lleva su trabajo YTDB, antes de llevar a cabo una actualización del Core, para no encontrarnos con encerronas.


scriptdev2.- Esta DB es exclusivamente de este Team como su nombre indica en ella residen todos los datos de sus scripts, ni ManGOS ni YTDB, la tocan, aunque, como hemos visto scriptdev2 si actualiza algunas tablas en la DB de ManGOS, y como YTDB se hace eco de estas y las incluye dentro de sus “corepatch_ mangos” . Scriptdev2 no jerarquiza las actualizaciones que hace en la DB mangos, ni las suyas, o sea no están enumeradas dentro de su DB, como explique anteriormente, así que hay que tomar nota de por donde lleva su revisión, esto puede ser un hándicap, pero también es una ventaja, ya que podemos actualizar su DB, sin necesidad de hacer una revisión de Core, tan solo compilando su DLL.


realmd.- Aquí están contenidos los datos del reino, en nombre que le hayamos dado, y la IP de este, la gestión de cuentas de usuario y los chicos que se han portado mal. Es igual de importante que la DB characters, así que toda precaución es poca. Raramente la actualizan, tiene pocas tablas, así que es fácil seguirle la pista, y está jerarquizada. La gestiona exclusivamente el Team de ManGOS.


Bueno, con el calentamiento de cabeza que te he dado, creo que te ha quedado claro el funcionamiento de las bases de datos de ManGOS y como intervienen en ellas los 3 Team que las gestionan.


Te ha quedado claro, además, que YTDB es nuestra referencia a la hora de cargar las DB como veremos, ya que este Team se hace eco de las que Mangos y ScriptDev2 hacen en la DB mangos, pero ojo, no en la DB scriptdev2.



....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


CREANDO LA DB


Empecemos lanzando “MySQL.bat” , y a continuación “SQLyog” ya sabrás como crear una conexión en localhost, y el usuario y password ya te lo dije, si quieres cambiar el password del administrador, para que yo no lo sepa, ja ja ja, en esta captura te explico cómo.


Administración de Usuarios de MySQL

19up3l


mangos:

Este crea 3 DB, como te he explicado, fíjate en los pasos a seguir, con la captura que te he puesto a continuación no te preocupes por el usuario que la administra, pues como te he mostrado en la captara anterior, es fácil eliminarlo, o editarlo, por ahora no lo cambies, es importante que aun no lo hagas.


2ptdjb8


Comento la imagen:
Te colocas encima de root@localhost, pulsas el botón derecho del ratón.
En el menú contextual seleccionas [Restore From SQL Dump..]
Pula el botón de exploración de la ventana de ejecución de consultas.
Localiza y selecciona el script “create_mysql.sql” en la carpeta “HDD:\ManGOS\src\sql”.
Pulsa el botón [Execute] en la ventana de ejecución de consultas, una vez concluido pulsa [Done].

Una vez terminado debes refrescar la ventada del explorador de DB, para que te aparezcan las bases de datos que has creado, bien como te muestro en la siguiente captura, ó seleccionando “root@localhost “ y pulsando F5


zxzm8


Scriptdev2:

Es idéntica operación que la anterior, el script llamado “scriptdev2_create_database.sql” está localizado en la carpeta “HDD:\ManGOS\src\src\bindings\scriptdev2\sql”.

Concluido el proceso de creación de las DB, este es seria el aspecto final con las 4 DB creadas.

335e1w7



....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


CRER LA EXTRCUTURA DE LA DB



El proceso que veremos a continuación, solo lo tenemos que hacer la 1º vez que creamos las DB, no es del todo útil para actualizar las DB, hay unos pasos para eso.


Vamos a seguir un orden de carga de datos, tomaremos como referencia el orden que tiene las DB en el Explorador de Objetos de la captura anterior.

En la Imagen inferior, puedes ver los pasos a seguir para cargar laS DB, estos son idénticos para todas, así que en las sucesivas cargas de datos, te servirá de referencia.


2iavt6b


characters:

Recuerda que vamos a trabajar con el directorio “HDD:\ManGOS\src\sql”. Paso a comentar los puntos:


Nos posicionamos con el ratón encima de la DB characters, y pulsamos el botón derecho.
En el menú contextual, seleccionamos [Import], con un clic.
En el siguiente, [Retore From SQL Dump..]
Ya debes estar familiarizado con esta ventana, así que localiza en “HDD:\ManGOS\src\sql”, el script “characters.sql”, lo ejecutas y pulsas [Done].

5ldqmp

Un proceso de carga correcto debe mostrar está imagen.


Concluida la carga de la DB characters, recuerda refrescar el explorador de DB, como te expliqué anteriormente.


mangos:

Hacemos los mismos pasos que hicimos con characters, pero esta vez con el script “mangos.sql” que está en la misma carpeta que el anterior “HDD:\ManGOS\src\sql”.


realmd:

Exactamente igual al anterior, el script se llama “realmd.sql”.

scriptdev2:

Debes buscar, el script “scriptdev2_create_structure_mysql.sql” en la carpeta “HDD:\ManGOS\src\src\bindings\scriptdev2\sql” y realizar la misma operación que las anteriores.


Bien pues ya tenemos, nuestras 4 DB, y sus respectivas estructuras de datos, o sea, las tablas que contienen y los registros que las componen, ¡ pero están bacías !.



█║▌│█│║▌║││█║▌│║║█║
® Mrbytes


Continua en el siguiente post.

última edición por Mrbytes el Dom 05 Jun, 2011 22:59; editado 16 veces
Perfil MP  
Objetivo: Re: Como Crear La DB De MaNGOS
....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


CARGA INICIAL DE DATOS



Todas las tablas, que hay en las DB están bacías, si las exploras lo verás, hasta ahora no las hemos llenado de datos, y se nos plantean unas dudas, ¿cómo se que datos debo cargar? ¿Hasta dónde debo llegar con los datos? ¿Por dónde empiezo?.


No me agobies. Ja ja ja, ni busques el testamento de la abuela, ja ja ja.
Como se trata de hacer la 1º carga, como dice el titulo, estos pasos son solo válidos para este cometido, tampoco nos sirven para actualizar las DB, pero no tanto, como ya veremos.


mangos + YTDB:

Vamos a empezar por esta, por ser la más compleja, abrimos nuestro utilidad de gestión de DB, la mía ya sabes cuál es, nos dirigimos al explorador de objetos, ya sabes también cual es, y desplegamos la DB mangos, y nos situamos encima de la tabla “db_versionpulsa F11, en la ventana de datos, nos mostrará el contenido de los registros de esta, y nuestra atención se centrará en el registro que dice “requied_10864_01_mangos_spell_proc_event” este registro nos dice para cual revisión de la DB, fue compilado el Core, (¿recuerdas la jerarquía que te explique?).


14x2x08


Analicemos estos datos:
28m8p2


O sea, dice que la última actualización que se le hizo a la DB, al compilar ManGOS fue la “10864_01_mangos_spell_proc_event”, así que debemos actualizar la DB hasta llegar a dicha revisión, apuntalo en un post-it, y pégalo junto a la pantalla de tu PC, o donde lo tengas a la vista.


Como bien sabes, YTDB es nuestra base de datos, así que vamos a proceder con la carga de sus datos en la DB mangos.


Nos dirigimos al repositorio donde dejamos YTDB “HDD:\ManGOS\YTDB”, y abrimos el archivo “ChangeLog-WotLK(ENG).txt” al inicio de este nos dice cual ha sido la última revisión que YTDB ha hecho en su base de datos. Por ejemplo:


UPDATE 576_(10842)

Esto viene a decir que su última revisión es la 576, que cubre hasta la 10842 de la DB mangos.

Nos dirigimos al directorio índice de dicha revisión, que es el R57 “HDD:\ManGOS\YTDB\R57” ya que los dos primeros números hacen referencian al índice de actualizaciones. En el principal de dicho directorio en formato “*.7z” (se descomprime con winrar), se encuentra la DB Matriz de dicha revisión, o sea la Índice, ejemplo la de la serie 570 es:


YTDB_0.14.0_R570_MaNGOS_R10650_SD2_R1847_ACID_R306_RuDB_R38.4.7z

Desglosemos este jeroglífico:

YTDB_0.14.0_R570 Es su nomenclatura y revisión base.
MaNGOS_R10650 Dice que abarca hasta la revisión 10650 de la DB mangos.
SD2_R1847 Hasta donde cubre los datos que en la DB mangos, scriptdev2 actualizó.
ACID_R306 Revisión de ACID que integra.
RuDB_R38 Revisión de Locales en Ruso que integra.

Lo descomprimimos y llevamos a cabo la carga de la DB mangos con ella, la operación es idéntica a la que hemos realizado en el ejemplo de carga de la estructura de datos. Una vez cargada, volvemos a leer el contenido de la tabla “db_versionpulsa F11, de la DB mangos y nos encontramos que el registro de revisiones ha cambiado, ahora dice:

wi3vy1

required_10629_01_mangos_mangos_string”, ahora, a la altura que nos encontramos en este proceso, este dato carece de importancia, pero te lo digo, porque es un buen deporte mirar siempre aquí, para saber por dónde vamos. El resto de los registro se ha cargado con las informaciones referentes a las tablas que hemos llenado.


Debemos continuar introduciendo datos hasta llegar a la revisión “10864_01_mangos_spell_proc_event” que apuntamos en el post-it, pero como os explique al hablar de YTDB, estos hacen mirror de las actualizaciones del Team NanGOS, antes de proceder a ejecutar las suyas.


En el “ChangeLog-WotLK(ENG).txt” , hemos visto cual es su ultimo FIX, en el ejemplo era el “UPDATE 576_(10842)” y nosotros tenemos el 570 recién introducido, así que debemos introducir datos desde el 570 al 576, ejecutando previamente el “corepatch“ correspondiente a cada FIX. Vamos a la carpeta “HDD:\ManGOS\YTDB\R57\Updates”.


Cogemos la siguiente a la 570, introducidos el “571_corepatch_mangos_10650_to_10675”, porque en el enunciado, “YTDB_0.14.0_R570_MaNGOS_R10650_SD2_R1847_ACID_R306_RuDB_R38.4.7z” dice que incluye la R10650 de ManGOS, ¿recuedas el jerogífico?, este script, actualizará la DB mangos hasta la revisión 10675.


A continuación, introducimos el FIX “571_mangos_FIX_(10675).sql” y así sucesivamente, sin equivocarnos en los script de mangos con los de characters “corepatch_[color=red]characters[/color]” porque estamos cargando la DB mangos.


Tenemos que tener cuidado en no sobrepasar la revisión 10864, que es la que el Core nos pide. ¿La tienes en el post-it?, es posible que algún “corepatch_mangos” la sobrepase, así que mucho cuidado con esto, es preferible quedarse corto, son los “XXX_mangos_FIX_(xxxxx).sql “ los que mandan en el proceso, o sea, si hubiese un FIX que enunciara “XXX_mangos_FIX_(10980).sql “ no debemos cargarlo, ni siquiera el “corepatch_mangos” que le antecede. Es conveniente apuntar en un papel, los script que vamos a cargar y marcar conforme hemos ejecutado, para no perder la cuenta, Es la “cuenta de la vieja” pero no hay otra.


Vamos a suponer que hemos terminado con los FIX de YTDB, volvamos a mirar el registro de la tabla “db_versionpulsa F11, de la DB mangos, y vemos que ha cambiado, además de la forma correcta, me explico, nos hemos quedado cortos, enuncia ”requiered_10835_01_mangos_spell_proc_event”, apúntala en el post-it.


Re-memoremos:
ManGOS dice que para funcionar necesitaba en la DB la revisión:
10864_01_mangos_spell_proc_event
Y tenemos hasta la:
10835_01_mangos_spell_proc_event

Las revisiones que hay entre ambas hay que cogerlas del repositorio raíz de actualizaciones SQL de ManGOS “HDD:\ManGOS\src\sql\updates”, empecemos cargando la siguiente a la “10835_01_mangos_spell_proc_event” (recuerda que esta la tenemos), y continuemos poniendo mucha atención en coger aquellas de empiecen con “xxxxx_xx_mangos_” e ignora las que digan “xxxxx_xx_characters_”, ó “xxxxx_xx_realmd_”, son de las otras DB.
¿Has terminado?, vuelve a consultar “db_versionpulsa F11, y……… ¡ bingooooooooo !

2mg9pjo

No cantes victoria que aún queda un poquito con YTDB, necesitamos cargar las tablas de eventos de los scripts de las criaturas, así como sus textos, esto están en el directorio “HDD:\ManGOS\YTDB\EventAI”, son acumulativos, así que debemos coger el que tiene el índice de la revisión matriz que cargamos al principio, que fue la R750, ¿recuerdas? “YTDB_0.14.0_R570_MaNGOS_R10650_SD2_R1847_ACID_R306_RuDB_R38.4.7z”, para dicha revisión seria el “570_EventAI_YTDB_QUEST.sql” ¡pero tiene un BUG!, cierto para que veas que no solo veo la paja en el ojo ajeno.


Debes buscar en el script las líneas que dicen:
UPDATE `creature_ai_scripts` SET `action1_param2` = 1 WHERE `entry` = 295802;
UPDATE `creature_ai_scripts` SET `action1_param2` = 1 WHERE `entry` = 296002;
Y sustituirlas por:
UPDATE `creature_ai_scripts` SET `action1_param2` = '1' WHERE `id` = 295802;
UPDATE `creature_ai_scripts` SET `action1_param2` = '1' WHERE `id` = 296002;

Ahora puedes cargarlo en la DB mangos sin que SQLyog te de errores.

Aun queda un pelín con esta DB, ahora en lo concerniente a Scripdev2. Como te comenté en su momento, Scriptdev2 también actualiza esta DB, aunque ellos no jerarquizan su actualizaciones, ya que raramente cambian la estructura de las tablas, mas bien, actualizan datos, o introducen nuevos así que sus script son del tipo “UPDATE” ó “DELETE FROM ……; INSERT INTO………..;” con lo cual no se pillan los dedos, ni nosotros tampoco, pero esto puede llevarnos a cometer el error de no hacer una actualización de ellos, en esta DB, a esto era a lo que me refería en el punto “Una Jerarquía” al hablar de ellos.

Debemos buscar en la última línea del último “corepatch_mangos” que hayamos introducido de YTDB (por eso te dije que los apuntaras y marcaras) y buscar la revisión del último FIX que ellos introdujeron en el, por ejemplo, en el “576_corepatch_mangos_10803_to_10842”, dice al final:

# SD2_1900
UPDATE creature_template SET ScriptName='npc_greer_orehammer' WHERE entry=23859;

O sea has introducido en la DB de mangos el “r1899_mangos.sql” que es el que más se le aproxima, compruébalo y verás que es cierto.


Si al compilar Scriptdev2 lo hicimos con su revisión 1908, por ejemplo, debemos actualizar la DB mangos con las “rXXXX_mangos.sql” que haya entre la 1900 (1899 por aproximación) hasta una hipotética “r1908_mangos.sql” si la hubiese, miramos en el directorio “HDD:\ManGOS\src\src\bindings\scriptdev2\sql\Updates”, y nos llevamos la sorpresa de que no hay ninguna, quiere decir que no hicieron alguna, pero podría haberlas, por esos hemos hecho el ejercicio de mirar. Pues me parece que ya hemos terminado con la dichosa DB mangos. Se puede decir, que la hemos “parío” nosotros, así que quien mejor para conocerla en un futuro, y ver cómo crece. Ja ja ja.


Ahora al consultar la tabla “db_versionpulsa F11, de la DB mangos nos encontraremos esto:

YTDB_0.14.0_R576_MaNGOS_R10842_SD2_R1900_ACID_R307_RuDB_R38.4
Cuando empezamos desde este
YTDB_0.14.0_R570_MaNGOS_R10650_SD2_R1847_ACID_R306_RuDB_R38.4

Te das cuenta de la progresión que ha tenido la DB mangos, no hace falta comentarte los datos. Además ahora en la DB mangos hay una nueva tabla “db_version_ytdbpulsa F11, que nos indica todos los FIX que hemos actualizado en la DB, y que el ultimo FIX de YTDB fue el ”576_FIX_10842” en nuestro ejemplo.

Recuerda siempre donde están estos datos para futuras actualizaciones como ya veremos.

characters:

Esta DB tiene muy poco trabajo, ya sabes cómo ver datos dentro de la tablas, así que mira el dato que hay dentro de la tabla “character_db_version” de la DB characters, este dice, en este ejemplo, “requiered_10862_01_characters_mail” (este es el que tiene incluido). Ahora vamos al directorio “HDD:\ManGOS\src\sql\updates” y vemos si hay alguna actualización de la DB characters, entre la “10862_01_characters_mail“ y la “10864_01_mangos_spell_proc_event” es ultima, fue la que ManGOS nos pidió al principio (recuerdas). Como ves, no hay ninguna, si las hubiese deberíamos proceder a su carga, serian todas aquellas que empezasen por “XXXXX_XX_characters_etc.etc” como hemos hecho con las anteriores, el proceso es el mismo.


realmd:

Vamos a terminar pronto con esta, mira la tabla “realmd_db_version” compara ese dato con “10864_01_mangos_spell_proc_event” y etc. etc., de lo mismo que characters.


scriptdev2:

De este Team ya hemos adelantado algo en la DB mangos. Dirígete al directorio “HDD:\ManGOS\src\src\bindings\scriptdev2\sql” y carga en su DB el script llamado “scriptdev2_script_full.sql” y a continuación en la DB mangos carga el script llamado “mangos_scriptname_full.sql”.

Volvamos de nuevo a la DB scripdev2, si hubiésemos compilado Scriptdev2 hasta la revisión 1908, debemos llevar a cabo las actualizaciones de su DB has la que hiciese referencia a esa revisión, por ejemplo “r1908_scriptdev2.sql”.


Con esto ya hemos terminado la carga inicial de las DB de ManGOS con los datos de YTDB.


....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


1 2 3 PROVANDO


Vamos a iniciar nuestro server para comprobar los posibles errores que haya en las DB, debemos editar el archivo “mangosd.conf” que está en el directorio raíz de nuestro servidor, y modificar la siguientes líneas, con objeto de poder entender mejor la pantalla del "log" del server, aunque este nos deje también en el directorio raíz del server una copia de esta ("server.log"), busca el siguiente enunciado en “mangosd.conf” y déjalo como lo puedes ver:


LogSQL = 1 > LogSQL = 0
LogLevel = 3 > LogLevel = 0
LogColors = "" > LogColors = "13 7 11 9"


De esta manera veras en rojo los errores en la carga de las tablas. ¡Lanzalo!. Solo tiene 3 errores son tres textos que hay demás en una tabla, sin mayor importancia, y que no afectará para nada al juego.


ERROR:CreatureEventAI: Entry -321493 in table `creature_ai_texts` but not used in EventAI scripts.
ERROR:CreatureEventAI: Entry -321492 in table `creature_ai_texts` but not used in EventAI scripts.
ERROR:CreatureEventAI: Entry -321491 in table `creature_ai_texts` but not used in EventAI scripts.


Ahora puedes editar el nombre de usuario y contraseña de la DB que ha creado ManGOS, que es mangos-mangos para ambos, o mejor bórralo y deja solo el del administrador, y te recuerdo que debes editar los 3 archivos *.conf y modificar dichos datos.


A continuación veremos cómo hay que proceder para actualizar las DB.


█║▌│█│║▌║││█║▌│║║█║
® Mrbytes

última edición por Mrbytes el Dom 05 Jun, 2011 23:20; editado 3 veces
Perfil MP  
Objetivo: Re: Como Crear La DB De MaNGOS
COMO ACTUALIZAR LAS BASES DE DATOS


Carece de toda lógica llevar a cabo una actualización de las DB, si no es por los siguientes motivos:


Has llevado a cabo una actualización de la revisión del Core, o sea tenias la 10866 y has compilado la 10900.
Has compilado una nueva revisión de Scripdev2, que como ya sabes no necesariamente debes actualizar el Core, para insertar en él, nuevos Script que haya introducido este Team, ya que es una DLL, la única que debes compilar, y que es independiente al Core, y además sus SQL no están jerarquizadas, como ya he comentado.

[
color=red]Aquí no vamos a entrar en divagaciones, de cuando es conveniente llevar a cabo nuevas compilaciones, simplemente, voy a dar por hecho, que estamos ante cualquiera de los dos casos puntuados, así que sigamos.[/color]


....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


DB MaNGOS


Es fácil averiguar que SQL, debemos actualizar, porque previamente, a cualquier actualización de estas, hay que lanzar el nuevo Core compilado, sobre la antigua DB, para que en la pantalla de LOG, ó leyendo el archivo “server.log”, como explique antes, podamos saber, que revisión de las SQL nos solicita, (recuerdas), esta es la única y efectiva forma de saber que debo actualizar y no pienses en otra.


Un ejemplo de “server.log”, tras una Re-compilación y ejecución sobre la antigua DB seria este

actualizardb1


Está claro que ha pasado, dice que en la tabla “db_version” de la DB mangos, ha buscado “10864_01_mangos_spell_proc_event” que fue la última revisión de la DB para la que fue compilado, y en su lugar ha encontrado “10629_01_mangos_mangos_string.sql”.


Es importantísimo que estos datos los escribas en un papel literalmente, sino, no sigas actualizando.


Ahora vamos a llevar a cabo, todas las actualizaciones que hay entre la que yo tengo y la que el necesita, pero esta vez, nos vamos a olvidar de YTDB por un momento. Todas las actualizaciones necesarias, las vamos a sacar del Clon del repositorio de ManGOS, porque a la vez que hicimos una actualización del Core, este, también actualizó las SQL y la susodicha que nos solicita está allí, en la carpeta “HDD:\ManGOS\src\sql\updates” en el raíz de ese directorio.


Procedamos a introducir una por una todas aquellas que contenga la palabra “mangos”, como primer enunciado, después del número de revisión y orden, ejemplo real:

La consecutiva a la que yo tengo (“10629_01_mangos_mangos_string.sql”)
Es la “10654_01_mangos_game_event_creature_quest.sql

Repito ten cuidado de no coger las que enuncien “XXXXX_XX_character_etc_etc.sql” ni las “XXXXX_XX_relamd_etc_etc.sql”, ya que estamos actualizando la DB mangos, y estos son de sus respectivas DB, SQLyog te dará un error al no encontrar las referidas tablas en la DB mangos.


Voy a dar por hecho que ya has acabado, con las revisiones de mangos.


....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


YTDB


¿Tienes a mano el papel con lo que te dije que apuntaras?. sabía que si, bien pues ahora nos vamos al directorio raíz de nuestro Clon de YTDB , que también has clonado cuando actualizaste el de ManGOS ¿verdad?, es de lógica, y abrimos el “ChangeLog-WotLK(ENG).txt” vemos si han sobrepasado el índice de revisiones, en comparación a la que yo tengo, el que tienes está en la tabla “db_version_ytdb” de la DB mangos, y diría algo así “57(X)_FIX_(xxxxx)”.

Estrategia a seguir; nos vamos al directorio “HDD:\ManGOS\YTDB\R57\Updates” que es el índice de los dos primeros números del FIX que tengo “57”, escribo en el referido papel, ¿que FIX de ellos estaría cubierto con la revisión que ManGOS te dijo en el Log sin sobrepasar esta?, te contestaré con un hipotético ejemplo.

ManGOS dijo en el log “10864_01_mangos_spell_proc_event
Yo tengo en “db_version_ytdb” , “574_FIX_10600”.
Dentro del directorio “HDD:\ManGOS\YTDB\R57\Updates” me encuentro con esta secuencia:
“574_mangos_FIX_(10600)”.
“575_mangos_FIX_(10720)”.
“576_mangos_FIX_(10810)”.
“577_mangos_FIX_(10920)”.

Con los datos que tengo, yo llevaría a cabo la actualización de los FIX 575 al 576, ya que el FIX 577 sobrepasa la revisión que tengo 10864, pues este cubre la 10920, y si lo llevase a cabo, posiblemente me faltarán datos en las tablas, sin embargo el 576 aunque no llega al 10864 ya que cubre hasta el 10810 si que tengo en la DB esos datos para los que fue creado, más claro no te lo puedo dejar, por otro lado, te has dado cuenta, que para nada he mencionado las SQL que dicen “corepatch”, estas no nos sirven ahora para actualizar, solo para la carga inicial de la DB, ¿te acuerdas?.

Te recuerdo que los “mangos_FIX” de YTDB NO integran datos de scriptdev2.


....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


DB characters


Esta DB es muy sensible, pues en ella están todos los datos de los personajes de los clientes, así que has una copia de seguridad de la DB, si bien como te explique al hablar de esta DB, ninguna actualización es traumática, o sea no conlleva perdida de datos existentes, es un 99% seguro, pero por el 1% restante haz una backout de esta.


EL proceso de actualización es idéntico al que hicimos al principio con mangos, directorio de actualizaciones el mismo “HDD:\ManGOS\src\sql\updates”, pero si tienes mala memoria te diré, que al igual que antes, nuestra referencia es la revisión que mangos nos pidió “10864_01_mangos_spell_proc_event”, esa sería la revisión tope a llegar, empezando por la que ya tenemos y que está en la tabla “character_db_version” de la DB characters” y actualizando solo aquellos script SQL, que llevasen el enunciado “characters” después del numero de revisión y orden, creo que esto lo dejé claro en el paso anterior.



....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


Db realmd


Sobran las palabras, ya sabes que hacer, idéntico a characters, están también en “HDD:\ManGOS\src\sql\updates” , pero cogiendo las SQL que enuncien “realmd” y sin llegar a coger las que haya a continuación de “10864_01_mangos_spell_proc_event” recuérdalo.



....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


Db scriptdev2


En el punto 2 donde explicaba los motivos por los que actualizar las DB, hablaba de la DLL de ellos “mangosscript.dll”, decía que se podía compilar esta, sin necesidad de compilar el Core, y llevar a cabo la actualización de su DB scriptdev2 y de la DB de mangos, de forma transparente para el Core.

Nos dirigimos a la tabla “sd2_db_version” de la DB de ellos, y quizá nos encontramos una ambigüedad como esta, “ScriptDev2 (for MaNGOS 10761+)”, no te preocupes, pues también lo podemos saber en la tabla “db_version” de la DB mangosYTDB_0.14.0_R576_MaNGOS_R10842_SD2_R1900_ACID_R307_RuDB_R38.4” como ya te explique.

Buscamos en el directorio “HDD:\ManGOS\src\src\bindings\scriptdev2\sql\Updates“ y nos encontramos que la que la más proxima (siempre por abajo) , es la “r1890_scriptdev2.sql” pues ya lo sabemos, que tenemos que actualizar desde el “r1890_scriptdev2.sql”, hasta la último que hayamos compilado, además, una vez terminado, debemos volver a la DB mangos, y llevar a cabo aquellas actualizaciones del tipo “mangos” que haya entre la “r1890_scriptdev2.sql” y la ultima “rev” que hayamos compilado (si las hubiese, porque no es obligatorio que la haya). Como ya te dije, sus revisiones no tiene jerarquía, son del tipo “UPDATE” ó “DELETE FROM ……; INSERT INTO………..;”, así que tampoco tenemos que preocuparnos si sobrescribimos de más, pero si, si lo hacemos de menos, ya que el Core, nos dará errores en la carga de las tablas, pues le faltarán datos de los srcipts, y esto si que le afectaría al juego.


Con esto he terminado el tutorial de creación y actualización de la DB de ManGOSloEs2. Lo que no aprendas aquí, no lo encontrarás en otra parte.


█║▌│█│║▌║││█║▌│║║█║
® Mrbytes to Eswow2 2010



P.D.
Aqui os dejo el Tutorial en DPF para que lo podais imprimir

En breve (se está actualizando)

Pesa 1 mg aprox.

última edición por Mrbytes el Mar 07 Jun, 2011 09:54; editado 6 veces
Perfil MP  
Objetivo: Re: Como Crear La DB De MaNGOS
Excelente guía MrBytes si señor

Un saludo ^^

Perfil MP  
Objetivo: Re: Como Crear La DB De MaNGOS
Hola, tengo un problemilla al ejecutar el realmd.exe

este es el log:

Citar:

2012-03-28 20:23:00 Using configuration file realmd.conf.
2012-03-28 20:23:00 Login Database total connections: 2
2012-03-28 20:23:00 MySQL client library: 5.1.49
2012-03-28 20:23:00 MySQL server ver: 5.5.16
2012-03-28 20:23:00 MySQL client library: 5.1.49
2012-03-28 20:23:00 MySQL server ver: 5.5.16
2012-03-28 20:23:00 ERROR:SQL: SELECT required_10008_01_realmd_realmd_db_version FROM realmd_db_version LIMIT 1
1- 2012-03-28 20:23:00 ERROR:query ERROR: Table 'mangos.realmd_db_version' doesn't exist
2- 2012-03-28 20:23:00 ERROR:SQL: SELECT * FROM realmd_db_version LIMIT 1
3- 2012-03-28 20:23:00 ERROR:query ERROR: Table 'mangos.realmd_db_version' doesn't exist
4- 2012-03-28 20:23:00 ERROR:The table `realmd_db_version` in your [REALMD] database is missing or corrupt.
5- 2012-03-28 20:23:00 ERROR:MaNGOS cannot find the version info needed to check that the db is up to date.
6- 2012-03-28 20:23:00 ERROR:
7- 2012-03-28 20:23:00 ERROR:This revision of mangos requires a database updated to:
8- 2012-03-28 20:23:00 ERROR:`10008_01_realmd_realmd_db_version.sql`
9- 2012-03-28 20:23:00 ERROR:
10- 2012-03-28 20:23:00 ERROR:Reinstall your [REALMD] database with the included sql file in the sql folder.


1º En la liena 1 y 3 no entiendo por que busca en la estructura mangos la tabla realmd_db_version, de hay que no la encuentre.

2º En la liena 7,8 me dice la version requerida la cual tengo

y final mente me dice que reinstale el realmd.


Bueno pues he probado a cargar de nuevo el sql '10008_01_realmd_realmd_db_version.sql'
pero nada y tambien el realmd por completo ... adjunto imagen mostrando la tabla.



Un saludo y Gracias.

última edición por Rhulk el Mie 28 Mar, 2012 20:15; editado 1 vez
Objetivo: Re: Como Crear La DB De MaNGOS
No estoy seguro del todo, pero por lo que veo en la imagen la base de datos se llama relamd y en el log que pegas parece que va a buscar en la tabla llamada mangos.

Mira que tengas bien configurados los archivos *.conf

De todos modos no estoy familiarizado con mangos. Espero que te sea de ayuda.

Perfil MP  
Objetivo: Re: Como Crear La DB De MaNGOS
Gracias

Estaba apuntando a la estructura mangos y no a la realmd en el archivo .conf

Objetivo: Re: Como Crear La DB De MaNGOS
podrian resuvir los enlaces? megaupload no funciona hace tiempo.

bueno ya consegui un servidor portatil..
desde esta pagina si es de interes:

h**p://sourceforge.net/projects/miniserver/files/MiniServer/

la pregunta es si se puede ubicar los maps y dbc mas los vmaps en una carpeta todos juntos, por ejemplo un directorio llamado data, y no tenerlos en la raiz del server..

otra cosa es q los archivos vmapExtractor3 y vmap_assembler no me extraen nada, tuve q coger una " prestada ".

la copilacion la da correcta, pero no funciona, decir q todos los q me deja copilar en 64bit asi lo hice.

el servidor esta copilado a 64 bit y todo lo q me lo permitio.

entro al juego pero me da errores en la carga del servidor son estos:
Código: [Descargar] [Ocultar] [Seleccionar]
SD2: Script registering but ScriptName event_gameobject_citadel_valve is not
igned in database. Script will not be used.
SD2: No script found for ScriptName 'boss_festergut'.
SD2: No script found for ScriptName 'go_door_lever_dm'.
SD2: No script found for ScriptName 'go_field_repair_bot_74A'.
SD2: No script found for ScriptName 'go_haaleshi_altar'.
SD2: No script found for ScriptName 'go_orb_of_command'.
SD2: No script found for ScriptName 'go_spectral_rift'.
SD2: No script found for ScriptName 'go_tablet_of_madness'.
SD2: No script found for ScriptName 'go_tablet_of_the_seven'.
SD2: No script found for ScriptName 'npc_alexstrasza_wr_gate'.
SD2: No script found for ScriptName 'npc_archmage_malin'.
SD2: No script found for ScriptName 'npc_augustus_the_touched'.
SD2: No script found for ScriptName 'npc_blood_knight_dawnstar'.
SD2: No script found for ScriptName 'npc_blood_knight_stillblade'.
SD2: No script found for ScriptName 'npc_budd_nedreck'.
SD2: No script found for ScriptName 'npc_captured_sunhawk_agent'.
SD2: No script found for ScriptName 'npc_cassa_crimsonwing'.
SD2: No script found for ScriptName 'npc_deathly_usher'.
SD2: No script found for ScriptName 'npc_deserter_agitator'.
SD2: No script found for ScriptName 'npc_elder_kuruti'.
SD2: No script found for ScriptName 'npc_fizzcrank_fullthrottle'.
SD2: No script found for ScriptName 'npc_frostborn_scout'.
SD2: No script found for ScriptName 'npc_gryphoneer_windbellow'.
SD2: No script found for ScriptName 'npc_henry_stern'.
SD2: No script found for ScriptName 'npc_henze_faulk'.
SD2: No script found for ScriptName 'npc_iruk'.
SD2: No script found for ScriptName 'npc_kalaran_windblade'.
SD2: No script found for ScriptName 'npc_kara_thricestar'.
SD2: No script found for ScriptName 'npc_khadgar'.
SD2: No script found for ScriptName 'npc_kingdom_of_dalaran_quests'.
SD2: No script found for ScriptName 'npc_lady_jaina_proudmoore'.
SD2: No script found for ScriptName 'npc_lantresor_of_the_blade'.
SD2: No script found for ScriptName 'npc_locksmith'.
SD2: No script found for ScriptName 'npc_loklira_the_crone'.
SD2: No script found for ScriptName 'npc_lore_keeper_of_norgannon'.
SD2: No script found for ScriptName 'npc_lothos_riftwaker'.
SD2: No script found for ScriptName 'npc_lunaclaw_spirit'.
SD2: No script found for ScriptName 'npc_mortog_steamhead'.
SD2: No script found for ScriptName 'npc_murkblood_overseer'.
SD2: No script found for ScriptName 'npc_naladu'.
SD2: No script found for ScriptName 'npc_narm_faulk'.
SD2: No script found for ScriptName 'npc_nat_pagle'.
SD2: No script found for ScriptName 'npc_neeru_fireblade'.
SD2: No script found for ScriptName 'npc_neltharaku'.
SD2: No script found for ScriptName 'npc_oronok_tornheart'.
SD2: No script found for ScriptName 'npc_overseer_nuaar'.
SD2: No script found for ScriptName 'npc_parqual_fintallas'.
SD2: No script found for ScriptName 'npc_raliq_the_drunk'.
SD2: No script found for ScriptName 'npc_rathis_tomber'.
SD2: No script found for ScriptName 'npc_rivern_frostwind'.
SD2: No script found for ScriptName 'npc_rogue_trainer'.
SD2: No script found for ScriptName 'npc_roxi_ramrocket'.
SD2: No script found for ScriptName 'npc_saat'.
SD2: No script found for ScriptName 'npc_saikkal_the_elder'.
SD2: No script found for ScriptName 'npc_skyguard_handler_deesak'.
SD2: No script found for ScriptName 'npc_skyguard_handler_irena'.
SD2: No script found for ScriptName 'npc_steward_of_time'.
SD2: No script found for ScriptName 'npc_surristrasz'.
SD2: No script found for ScriptName 'npc_susurrus'.
SD2: No script found for ScriptName 'npc_thorim'.
SD2: No script found for ScriptName 'npc_tiare'.
SD2: No script found for ScriptName 'npc_timothy_daniels'.
SD2: No script found for ScriptName 'npc_trollbane'.
SD2: No script found for ScriptName 'npc_vekjik'.
SD2: No script found for ScriptName 'npc_veronia'.
SD2: No script found for ScriptName 'npc_wing_commander_brack'.
SD2: No script found for ScriptName 'npc_wing_commander_dabiree'.
SD2: No script found for ScriptName 'npc_witch_doctor_mauari'.
SD2: No script found for ScriptName 'npc_zamael_lunthistle'.
SD2: No script found for ScriptName 'npc_zephyr'.
SD2: No script found for ScriptName 'npc_zidormi'.
SD2: No script found for ScriptName 'npcs_dithers_and_arbington'.
SD2: No script found for ScriptName 'npcs_flanis_swiftwing_and_kagrosh'.

y este otro:

Citar:
>> Loaded `npc_gossip`, table is empty!


gracias por todo.

última edición por wyrms el Vie 04 May, 2012 09:55; editado 3 veces
Objetivo: Re: Como Crear La DB De MaNGOS
wyrms, al parecer es un error de compilación de scriptdev2 o de base de datos del mismo.
Estate seguro de haber compilado bien scriptdev2 y que la base de datos del mismo nombre este correcta. Tambien asegúrate de poner los scriptnames en la base de datos mangos.
Suerte!

última edición por javit00o el Vie 04 May, 2012 08:12; editado 1 vez
Objetivo: Re: Como Crear La DB De MaNGOS
Hola me cito a mi mismo:

Citar:
De este Team ya hemos adelantado algo en la DB mangos. Dirígete al directorio “HDD:\ManGOS\src\src\bindings\scriptdev2\sql” y carga en su DB el script llamado “scriptdev2_script_full.sql” y a continuación en la DB mangos carga el script llamado “mangos_scriptname_full.sql”.


Creo que eso que te me marcado en rojo no lo has metido en la DB de MaNGOS (esos son los nombres de los script que SD2 ha creado en su dll y que mangos debe reconocer, por decirlo de algún modo). Eso por un lado, por otro, es muy posible, que el core tenga su script custom scritp a parte de los de SD2, y que tengas que meternos en sus respectivas DB. o sea en mangos (para que se lleve a cabo lo que te en marcado en azul) y en Scriptdev2 (esto ultimo es el error que te ha tirado el log).

Salu2

última edición por Mrbytes el Vie 04 May, 2012 13:11; editado 1 vez
Perfil MP  
Objetivo: Re: Como Crear La DB De MaNGOS
hola muchas gracias por responder tan rapido.

edito:

ya solo me da estos errores:

Código: [Descargar] [Ocultar] [Seleccionar]
SD2: No script found for ScriptName 'boss_deathbringer_saurfang'.
SD2: No script found for ScriptName 'boss_lady_deathwhisper'.
SD2: No script found for ScriptName 'boss_lord_marrowgar'
Loaded `npc_gossip`, table is empty!


tambien decir q la base de datos ytdb es algo mayor q la la q pide mangos

YTDB_0.14.5_R620_MaNGOS_R11977_SD2_R2534_ACID_R309c_RuDB_R49

mangos pide
requiered_11968_01_mangos_creature_linking_templante

pero es q no viene otra.

pronto pondre subire el server myslq y apache en uno, mas los bat q cree para iniciarlo todo a la vez incluido los .exe de los server, editare los .bat para poner una esplicacion de q poner en cada sitio para las rutas, mas un leeme, para estar todo muy clario.

gracias por responder y ayudar desinteresadamente.

saludos.

última edición por wyrms el Lun 07 May, 2012 11:19; editado 3 veces
manfred1988
Objetivo: Re: Como Crear La DB De MaNGOS
Hola esta muy bien explicado el tema me gusta mucho, una pregunta en que momento se consigue el YTDB porque no lo veo en ninguna de las carpetas del repositorio de mangos, porque ya cree las tablas y ya vi la versión aunque la mía es required_11994_01_mangos_creature_linking pero eso da igual la importante es que no encuentro el YTDB y sin eso no puedo seguir adelante

me podrías decir como conseguirlo??

Objetivo: Re: Como Crear La DB De MaNGOS
Este es el Repositorio GIT de uno de los desarrolladores oficiales de YTDB, clónalo de ese.

Suerte

Perfil MP  
Objetivo: Re: Como Crear La DB De MaNGOS
Mrbytes escribió: [Ver mensaje]
Este es el Repositorio GIT de uno de los desarrolladores oficiales de YTDB, clónalo de ese.

Suerte

esa direccion ya no es valida, o no esta funcionando ahora mismo..
aqui otra para usar:
Enlace de YTDB

saludos.


Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 1.3462s (PHP: 81% SQL: 19%)
Consultas SQL: 19 - Debug on - GZIP Activado