= MaNGOS -- README =

Copyright (c) 2005-2010 MaNGOS <http://getmangos.com/>

See the COPYING file for copying conditions.

== Database Updates ==
This folder contains SQL files which will apply required updates to your MySQL
database, whenever the MaNGOS database structure has been changed or extended.

To see if you need an update, the file names have been given a fixed structure
that should enable you to see if you need an update or not.

=== File name descriptin ===
File names are divided into two parts. First part is the revision+counter
that show commit revision that will be compatible with database after apply update.
Counter set order in sql updates apply for same revision.
The second part of the name of the database and the table that needs and update or has been added.
See an example below:

         6936_01_mangos_spell_chain.sql
         |    |  |      |
         |    |  |      |
         |    |  |      The table `spell_chain`
         |    |  |      will need an update.
         |    |  |
         |    |  Name of affected DB (default recommended name)
         |    |  Can be: characters, mangos, realmd
         |    |
         |    Counter show number of sql update in updates list for provided revision
         |    and set proper order for sql updates for same revision
         |
         MaNGOS commit revison related to sql update.
         It included in commit description in form [6936] as you can see at http://github.com/mangos/mangos/commits/master

After appling this update DB compatiable with database that include this sql update.
SQL update include special protection against multiply and wrong order SQL updates apply.
So attempt apply sql update to more old DB without previous SQL update in list for targeted database
or to DB with already applied this or later SQL update will generate error and not applied.

=== For commiters ====

MaNGOS sources include special tool ( contrib/git_id ) for generation revision info
in commit notes and in src/shared/revision_nr.h file. It have option '-s' that let set
correct sql update names with revision number, generate sql update order guard queries,
and update version fields in mangos.sql/etc. For it use name sql updates in form
01_mangos_spell_chain.sql or 9999_01_mangos_spell_chain.sql (counter can be _01_, _02_, and etc,
dependent from sql updates amount in commit) and _not_ add to sql updates
guard queries. Include sql updates in commit. After commit adding to local repo call git_id
with -s option (and another, note: -s option not work propertly with -l option). Other steps
tool will do by self and apply changes to commit. After tool use commit with sql updates ready
to push.
