OneDB is the official world database for AscEmu. Feel free to share your thoughts with us.
Since AscEmu supports multiple versions on its repo, it was open how we deliver the necessary data for the different versions. AscEmu has not enough people to work on several databases. It is difficult to implement a proper versioning and implement automatic DB updates for all versions in a maintainable way. So we try to achieve to put all data in one database.
Most tables require something to determine if the data is for the current version or not. AscEmu already uses the client build number for its version specific code so we use it for the database too.
There is barely any information about data changes. Some of this information can be found on Wowhead/WoWWiki but most of it can be found in the patch notes. If you are into reading old notes and wiki pages, this is the right place for you.
We have to change the table structures with one/two extra keys named build or min/max_build. These new columns can be used by AscEmu to load the correct data for the chosen AEVersion. The "build" field has to be <= than the current AE Version or the Server version has to be between min/max_build.
To simplify some work, we could just use the available AEVersion build number in this field:
5875 Classic
8606 TBC
12340 WotLK
15595 Cata
The build number from the patch the data was originally changed.
The build numbers (from min_build to max_build) the data is valid.
Sounds good you may think, but what does this really mean for you?
Everyone will receive all updates for all versions no matter if they need them or not. Sounds not good to you? Imagine switching your Server to a newer version simply by compiling AscEmu with a new version.
We can not change structures for the tables. So if you ever tried to switch to a newer version (e.g. tbc to wotlk) you know that separated databases mostly change structures. The bright side is, we will always have one structure for all version, so unknown/different columns in the wiki is a thing of the past.
The build is key... I mean history is key. We link data to a build number and with that, we know exactly when the data changed. We will be able to compare old and new data which will help us when we work with it.
Important
Please create new issue reports in our main project AscEmu/AscEmu.