如何确保数据库是最新的
How to make sure that the DB is up to date
When installing/updating AzerothCore 有时会遇到这样的错误:
[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
[ERROR]: Unknown column 'mindmg' in 'field list'
ERROR: Your database structure is not up to date. Please make sure you've executed all queries in the sql/updates folders.
这通常意味着数据库结构不是最新的。
更具体地说,本地数据库版本与本地核心版本不一致。
这导致了以下问题:
- 如何检查数据库是否是最新的?
- 如何了解每个数据库缺少哪些数据库 SQL 更新?
2021 年更新:
最新的 AzerothCore 现在在核心中集成了 自动数据库更新程序 。
您只需通过 worldserver.conf
通过设置启用它:
Updates.EnableDatabases = 7
然后您的 worldserver
进程将自动为您更新所有数据库。
您需要 最新的 AC 才能获得此功能。
原回答及解释:
AzerothCore 有三个数据库:auth、characters 和 world。所有这些都需要正确更新才能启动服务器应用程序。
每个数据库都有一个 table version_db_xxxx
,它在 其最后一列的名称.
中保存有关数据库版本的信息
- auth 数据库有
version_db_auth
table
- 字符 DB 有
version_db_characters
table
- 世界数据库有
version_db_world
table
数据库版本将以YYYY_MM_DD_XX
的格式表示,基本上是一个日期后跟一个数字(XX
)。
此值将是此类 table 的最后一列的名称,它对应于已应用于该数据库的最后一个 SQL 更新文件的名称。
可以在 azerothcore-wotlk/data/sql/updates/db_xxxx/
目录中找到 SQL 更新文件(其中 xxx
是数据库名称):
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
为了确保数据库是最新的,应该比较(每个数据库):
version_db_xxxx
table 的最后一列名称
- 最近的 sql 文件名包含在
data/sql/updates/db_xxxx
(most recent 就最近的日期而言。如果日期相同,pending number 最大的文件是最近的)
如果值相同,则数据库是最新的。否则,需要通过按顺序导入所有缺失的 SQL 更新文件来更新数据库。
When installing/updating AzerothCore 有时会遇到这样的错误:
[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
[ERROR]: Unknown column 'mindmg' in 'field list'
ERROR: Your database structure is not up to date. Please make sure you've executed all queries in the sql/updates folders.
这通常意味着数据库结构不是最新的。
更具体地说,本地数据库版本与本地核心版本不一致。
这导致了以下问题:
- 如何检查数据库是否是最新的?
- 如何了解每个数据库缺少哪些数据库 SQL 更新?
2021 年更新:
最新的 AzerothCore 现在在核心中集成了 自动数据库更新程序 。
您只需通过 worldserver.conf
通过设置启用它:
Updates.EnableDatabases = 7
然后您的 worldserver
进程将自动为您更新所有数据库。
您需要 最新的 AC 才能获得此功能。
原回答及解释:
AzerothCore 有三个数据库:auth、characters 和 world。所有这些都需要正确更新才能启动服务器应用程序。
每个数据库都有一个 table version_db_xxxx
,它在 其最后一列的名称.
- auth 数据库有
version_db_auth
table - 字符 DB 有
version_db_characters
table - 世界数据库有
version_db_world
table
数据库版本将以YYYY_MM_DD_XX
的格式表示,基本上是一个日期后跟一个数字(XX
)。
此值将是此类 table 的最后一列的名称,它对应于已应用于该数据库的最后一个 SQL 更新文件的名称。
可以在 azerothcore-wotlk/data/sql/updates/db_xxxx/
目录中找到 SQL 更新文件(其中 xxx
是数据库名称):
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
为了确保数据库是最新的,应该比较(每个数据库):
version_db_xxxx
table 的最后一列名称
- 最近的 sql 文件名包含在
data/sql/updates/db_xxxx
(most recent 就最近的日期而言。如果日期相同,pending number 最大的文件是最近的)
如果值相同,则数据库是最新的。否则,需要通过按顺序导入所有缺失的 SQL 更新文件来更新数据库。