我经常遇到以下问题.
我对一个需要在数据库中添加新表或列的项目进行了一些更改.我修改了数据库并继续我的工作.通常,我会记得写下更改,以便可以在实时系统上复制.然而,我并不总是记得我改变了什么,也不总是记得把它写下来.
所以,我推动了实时系统,得到了一个明显的错误,没有NewColumnX
,呃.
尽管这可能不是这种情况下的最佳实践,但是否有针对数据库的版本控制系统?我不在乎具体的数据库技术.我只是想知道有没有.如果它恰好与MS SQL Server配合使用,那就太好了.
我经常遇到以下问题.
我对一个需要在数据库中添加新表或列的项目进行了一些更改.我修改了数据库并继续我的工作.通常,我会记得写下更改,以便可以在实时系统上复制.然而,我并不总是记得我改变了什么,也不总是记得把它写下来.
所以,我推动了实时系统,得到了一个明显的错误,没有NewColumnX
,呃.
尽管这可能不是这种情况下的最佳实践,但是否有针对数据库的版本控制系统?我不在乎具体的数据库技术.我只是想知道有没有.如果它恰好与MS SQL Server配合使用,那就太好了.
在Ruby on Rails中,有一个migration的概念——一个用于更改数据库的快速脚本.
您将生成一个迁移文件,其中包含增加db版本的规则(例如添加列)和降级版本的规则(例如删除列).每次迁移都会进行编号,并有一个表记录当前的db版本.
对于migrate up,您运行一个名为"db:migrate"的命令,该命令查看您的版本并应用所需的脚本.可以用类似的方式向下migrations.
迁移脚本本身保存在一个版本控制系统中——每当您更改数据库时,您都会签入一个新脚本,任何开发人员都可以应用它,将本地数据库更新为最新版本.