如何跨多个开发人员管理和捕获数据库更改?

Mat*_*eer 13 .net database sql-server version-control database-design

我们有三个开发人员和一个测试人员都在使用同一个数据库.我们经常更改数据库的模式,每次我们这样做都会对其他人产生令人头疼的涟漪效应.

针对面向.NET的开发是否存在针对MS SQL Server 2008进行管理的良好实践?我正在考虑类似于Rails迁移的东西,每个开发人员和测试人员都有自己的本地数据库.或者那有点矫枉过正?拥有单独的测试和开发数据库至少会很好,但目前手动保持两个数据库同步可能比我们目前的困境更糟糕.

LiquiBase似乎很有希望,有没有人在类似的环境中成功使用过它?还是有更好的方法?

如果重要的话,我们正在使用SQL Server 2008,VS 2008和.NET 3.5.

Vla*_*jic 4

我们有从头开始生成数据库的脚本,这就是源代码管理中的内容。\n每个开发人员(其中 20 名)都使用脚本在其工作站上生成 2 个数据库。一个用于 \xe2\x80\x9cwork\xe2\x80\x9d \xe2\x80\x93 手动测试,其中包含示例数据(有脚本来填充示例数据)。另一个数据库是空的,用于单元测试(打开事务 \xe2\x80\x93 执行单元测试 \xe2\x80\x93 回滚)。

\n\n

在多开发人员环境中,单元测试是强制性的。\n此外,我们始终构建 \xe2\x80\x9cold\xe2\x80\x9d 数据库并对其应用架构更改。每个开发人员都通过创建升级过程来更改架构(这就是我们同时准备好重建和升级的方式)。

\n\n

对于性能测试,我们有 \xe2\x80\x9cloaders\xe2\x80\x9d \xe2\x80\x93 C# 代码来模拟用户并在夜间在开发人员工作站上填充数百万条记录。

\n