sql-server - 用于从源代码控制重新创建数据库的批处理脚本

标签 sql-server version-control batch-file sqlcmd

据我了解,如果我想让我的数据库受到源代码控制,那么我需要检查每个更改的更改脚本,然后从某个修订版运行它们以获得正确的数据库。

我正在尝试制作一个也将被 checkin 的批处理文件,该文件允许团队中的其他开发人员在本地重新构建数据库而不会遇到太多麻烦。我相信 sqlcmd 是实现这一目标的方法。我将其设置为枚举 .sql 文件目录中的所有文件并为每个文件运行 sqlcmd。

我的问题是谁以前做过这件事,您对实现这一目标的最佳方法有什么建议吗?我打算这样做的方式是最好的方式还是有更好的方式?

希望这不是太含糊。

提前致谢,

马丁。

最佳答案

如果您使用像 NHibernate 这样的 ORM 工具,您就可以省去数据库更改脚本的麻烦,因为 ORM 可以从其映射文件(受源代码控制)重新创建数据库。

这是为每个修订版提供适当的数据库版本的非常简单的方法。

然后,每当执行测试时,我都会重新创建整个架构,以确保我具有一致的状态。

我最近在博客上谈到了这一点: http://www.tigraine.at/2008/10/30/sourcecontrol-and-databases-when-orm-comes-in-handy/

我也曾经有一个包含 Sql 更新脚本的项目,我们只是构建了一个小帮助工具(非常非常基本)来打开文件夹,对所有脚本进行排序(我们将它们命名为 1 - foo.sql,2 - bar.sql)并针对数据库按顺序执行它们。

如果开发人员有一个新脚本,他只需将其添加到末尾(34 - bla bla.sql)。

关于sql-server - 用于从源代码控制重新创建数据库的批处理脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/280539/

相关文章:

c# - 将 varchar 值 'AL-DMK2_1' 转换为数据类型 int 时转换失败

sql-server - SQL Server : Hidden risks of using DBCC SHRINKFILE

sql-server - 为 SQL Server 表自动生成 INSERT 语句的最佳方法是什么?

version-control - 所有不同类型的版本控制之间有什么区别?

version-control - 单人表演的 VSS 替代品(一军?)

shell - 为什么在批处理程序的 FOR 循环中创建了一个额外的文件?

vbscript - 在 Windows 7 中批量启动程序并按 Enter 键

asp.net - 如何使用Visual Studio内置的SQL Server?

version-control - TortoiseSVN 合并

windows - 在windows中的命令行上创建一个空文件(如linux touch命令)