开发者

The best way to manage database changes [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.

Want to improve this question? Update the question 开发者_如何转开发so it focuses on one problem only by editing this post.

Closed 8 years ago.

Improve this question

What is the best way to manage database changes? I need to have a solutions regardless the database client's language. Also I'd like to be able to use specific database features in those changes such as stored procedures, triggers and so on.


First of all, make sure you have your entire Database Build scripted so you can rebuild the database if needed.

Each change should then be written as an Update script. That way you can run each change individually against the your databases.

Once the change has been commited to the codebase, merge the change script with the build process so it happens automatically...and then archive the change script in case any questions arise.


First and foremost, put all database changes in scripts and put them into the source control system.

Next remove any permissions to production that developers have. Exactly two people should have rights on production in a small to medium shop, the designated dba and his or her designated alternate. Once devs can't make changes to prod, you will find it easier to get them to actually write and use scripts.

Never run a script on prod that wasn't first loaded to QA or staging. If there are issues with the script, it should be found at this point.


Use idempotent change scripts (and maybe have a look at LiquiBase or dbdeploy).


Not sure what you are asking here, but if it's a good way to manage schema changes, and keeping them in synch between versions and deployments, it's hard to go wrong with Visual Studio Database Edition. It's sole purpose in life is to manage database schema changes, validate the schema, build and generate deployment scripts. If you have Visual Studio Developer Edition or Visual Studio Team Suite, you can get it for free.


Well, we are currently using Redgate's toolbelt which contains a Database Compare, Data Compare, etc.

You can also use any source control to track changes to your database objects.


In my case, I build a SH script for this work:

https://github.com/reduardo7/db-version-updater

And a MySQL script:

https://github.com/reduardo7/db-version-updater-mysql

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜