![Kristoff Atruin Kristoff Atruin](https://web.ccpgamescdn.com/dust/img/character_creator/male_minmatar_128.jpg)
Kristoff Atruin
Subdreddit Test Alliance Please Ignore
2097
![View only posts by author View only posts by author](/images/icon_filter.gif) |
Posted - 2014.04.17 13:50:00 -
[1] - Quote
I'm 99.99% sure that these bugs are all from wrong values in a database, which means version control isn't really the problem. The problem is configuration management. Basically when they last fixed these problems someone whipped up a script to correct the values in production and then that script was never integrated into the standard build process. So then the next time someone makes a change and does what they're supposed to do they overwrite the previous fix with the "correct" values, as far as the deployment process is concerned.
The correct way to approach deployments in this kind of system is to have a set of scripts that can rebuild the static portion of your database from nothing, and a set of change scripts that do updates from the previous state (ie: update dropsuits set highslots = 1 where name = dragonfly). That change script gets put into a folder called 1.8, and then when you deploy you run a batch that executes every sql file in that folder. All this stuff gets stored in version control, so that at any point in time you can revert to any version configuration you've ever had.
Then as long as you follow the process of creating that file the guy doing the deployment can't screw it up. If something does go horribly wrong then they can go back and rebuild the whole thing from scratch with the correct values.
It isn't really something QA can catch if the configuration management is wonky. The values could be correct on their internal tests but wrong in production, and there isn't time to test every possible use case in the game during a deployment window. |
![Kristoff Atruin Kristoff Atruin](https://web.ccpgamescdn.com/dust/img/character_creator/male_minmatar_128.jpg)
Kristoff Atruin
Subdreddit Test Alliance Please Ignore
2243
![View only posts by author View only posts by author](/images/icon_filter.gif) |
Posted - 2014.08.11 01:54:00 -
[2] - Quote
Greiv Rabbah wrote:Kristoff Atruin wrote:I'm 99.99% sure that these bugs are all from wrong values in a database, which means version control isn't really the problem. The problem is configuration management. Basically when they last fixed these problems someone whipped up a script to correct the values in production and then that script was never integrated into the standard build process. So then the next time someone makes a change and does what they're supposed to do they overwrite the previous fix with the "correct" values, as far as the deployment process is concerned.
The correct way to approach deployments in this kind of system is to have a set of scripts that can rebuild the static portion of your database from nothing, and a set of change scripts that do updates from the previous state (ie: update dropsuits set highslots = 1 where name = dragonfly). That change script gets put into a folder called 1.8, and then when you deploy you run a batch that executes every sql file in that folder. All this stuff gets stored in version control, so that at any point in time you can revert to any version configuration you've ever had.
Then as long as you follow the process of creating that file the guy doing the deployment can't screw it up. If something does go horribly wrong then they can go back and rebuild the whole thing from scratch with the correct values.
It isn't really something QA can catch if the configuration management is wonky. The values could be correct on their internal tests but wrong in production, and there isn't time to test every possible use case in the game during a deployment window. This sounds like something the dust sde should be usable for. No?
That database is actually where the SDE comes from, they extract the static data (SDE) and give it to us. Eve does it the same way, and gives it in a format that can be restored into a local database. I've done this for Eve, to run queries to figure out how many temperate planets there are in a region back when PC was about to be released and we were trying to work out how nullsec might work / guess at what region might come first. I took their file, imported it to sql server and then figured out how the data structures worked so I could write a query.
Because of how database files are formatted version control probably wouldn't be an option, though they could keep backups of every version once it has been verified as correct. The problem with that method is restoring an old backup blows away any non-static data in the system, whereas a batch file that runs a series of scripts can drop and recreate only the tables needed and leave your dynamic tables untouched.
|