我经常遇到以下问题。
我正在对项目进行一些更改,这些更改需要数据库中的新表或新列。我进行数据库修改并继续我的工作。通常,我记得记下更改,以便可以在实时系统上复制它们。但是,我并不总是记得自己所做的更改,也并非总是记得写下来。
因此,我推动了实时系统,并得到了一个很大的,明显的错误,那就是,没有NewColumnX。
不管这可能不是这种情况的最佳实践,是否存在数据库的版本控制系统?我不在乎特定的数据库技术。我只想知道是否存在。如果碰巧可以与MS SQL Server一起使用,那就太好了。
在Ruby on Rails中,有一个迁移的概念-一种用于更改数据库的快速脚本。
您将生成一个迁移文件,该文件具有增加数据库版本的规则(例如添加列)和具有降级版本的规则(例如删除列)。每个迁移都有编号,并且有一个表跟踪您当前的数据库版本。
要向上迁移,请运行一个名为“ db:migrate”的命令,该命令将查看您的版本并应用所需的脚本。您可以通过类似的方式向下迁移。
迁移脚本本身保存在版本控制系统中-每当您更改数据库时,都需要签入新脚本,任何开发人员都可以应用该脚本将其本地db更新到最新版本。