|
|
1
3
如果您使用的是像nhibernate这样的ORM工具,那么就省去了使用数据库更改脚本的麻烦,因为ORM可以从其映射文件(受源代码管理)中重新创建数据库。 这是一种非常简单的方法,可以为每个版本提供适当的DB版本。 然后,每当执行测试时,我也会重新创建整个模式,以确保状态一致。 我最近在博客上写过: 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)。 |
|
|
2
3
我开发了一个小实用程序,通过将表、SP、触发器和视图导出到文本文件,帮助我对它们进行版本调整: gljakal's Sql Exporter . 它有一个GUI模式和一个命令行模式(所以我可以在批处理文件中使用它)。 在SQL 2005+上工作。 |
|
|
3
0
需要注意的一点是,您需要按照依赖关系的顺序创建对象。所以不能简单地迭代文件。 我们最终得到了一个批处理文件,它按照依赖关系的顺序列出所有对象。 实际上,我们有两个批处理文件,一个称为createdbobject.bat:
另一个包含所有DB对象的列表:
现在我们使用 SQL Compare Pro 自动完成所有这些任务 您还可以检查相关问题: Is there a âpoor manâsâ alternative to RedGate for scripting out entire database schema? |
|
|
4
0
如果你的公司愿意投资一些好的工具,那是值得检查的。 SQL Compare Pro . 它非常适合于自动化/简化您描述的任务。他们有14天的免费功能齐全的试用期,所以你可以在投资前进行测试。 |
|
|
5
0
关于或映射框架能够创建模式,这是一个有趣的观点——我没有想到这一点。我实际上使用的是linq-to-sql,但我相信模式和db仍然可以通过createDatabase()调用重新创建。 是否有其他人通过LINQ to SQL对数据库源代码进行了这种控制? |