How to make sure that the DB is up to date

纵饮孤独 提交于 2019-12-20 02:45:17

问题


When installing/updating AzerothCore sometimes one encounters errors such as:

[ERROR]: In mysql_stmt_prepare() id: 3, sql:

[ERROR]: Unknown column 'entry' in 'field list'

[ERROR]: Unknown column 'dmg_multiplier' in 'field list'

[ERROR]: Table 'acore_world.graveyard_zone' doesn't exist

this usually means the database structure is not up to date.

More specifically, the local DB version is not aligned with the local core version.

This leads to the following questions:

  • How to check whether the DB is up to date or not?
  • How to understand what DB SQL updates are missing per each DB?

回答1:


AzerothCore has three databases: auth, characters and world. All of them need to be properly up to date in order to start the server application.

Each database has a table version_db_xxxx which holds information about the database version inside its last column's name.

  • auth DB has the version_db_auth table
  • characters DB has the version_db_characters table
  • world DB has the version_db_world table

The database version will be expressed in the format of YYYY_MM_DD_XX which is basically a date followed by a number (XX).

This value will be the name of the last column of such tables and it corresponds to the name of the last SQL update file that has been applied to that database.

The SQL update files can be found in the azerothcore-wotlk/data/sql/updates/db_xxxx/ directory (where xxx is the database name):

  • https://github.com/azerothcore/azerothcore-wotlk/tree/master/data/sql/updates/db_auth

  • https://github.com/azerothcore/azerothcore-wotlk/tree/master/data/sql/updates/db_characters

  • https://github.com/azerothcore/azerothcore-wotlk/tree/master/data/sql/updates/db_world

To make sure the database is up to date, one should compare (per each database):

  • the last column name of the version_db_xxxx table
  • the most recent sql file name contained in data/sql/updates/db_xxxx

(most recent in terms of most recent date. If the date is the same, the file having the highest pending number is the most recent)

If the values are the same, then the DB is up to date. Otherwise, the DB needs to be updated by importing all missing SQL update files in order.



来源:https://stackoverflow.com/questions/55282167/how-to-make-sure-that-the-db-is-up-to-date

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!