什么是构建数据库的最佳构建系统?

时间:2009-01-28 11:38:32

标签: sql database build-process

这是我偶尔遇到的一个问题,还没有找到我满意的答案。我正在寻找一个适合构建数据库的构建系统 - 它正确运行正确数据库实例中的所有SQL文件,并以正确的顺序运行,并正确处理依赖关系等。

我有一个系统,我使用Gnu Make一起攻击它并且它可以工作,但它不是特别灵活,坦率地说在某些情况下可能会有点痛苦。我也考虑过像SCons和CMake这样的东西,但我不知道它们可能会有多好,或者是否有更好的系统已经存在......

4 个答案:

答案 0 :(得分:0)

对于SQL Server,我只使用带有SQLCMD.EXE的批处理文件和一堆.SQL文件。它并不完美,但似乎有效。

答案 1 :(得分:0)

对于我的数据库,我使用Migrator.NET 这是一个.NET框架,它允许您在定义DDL语句的位置创建类。 该框架附带一个命令行工具,您可以使用该工具以正确的顺序执行“迁移”。 它还有一个msbuild - 任务,因此您也可以将它集成到持续集成构建中。

答案 2 :(得分:0)

只是一个shell脚本,它以正确的顺序运行所有create语句和导入。您可能还会发现migrations(带有rails)很有趣。它提供了一个make类似的基础架构,让您可以维护一个数据库,其结构随着时间的推移而发展。

假设您向某个表添加新列。在迁移中,您需要编写一段代码,其中描述了添加列的要求以及回滚更改,以便您可以自动切换到不同版本的模式。

尽管如此,我并不是与导轨紧密集成的忠实粉丝,但它背后的原理非常有趣。

答案 3 :(得分:0)

首先导出描述所有表,视图,源代码的完整DDL文件 (程序,函数,包),数据库模式的序列和授权

请参阅
Is there a tool to generate a full database DDL for SQL Server? What about Postgres and MySQL?

我创建了一个数据库构建系统(部分SQL-parser,part make file),使用python将这些文件放在DB创建脚本中。