2009-01-28 132 views
2

这是一个我偶尔会遇到的问题,尚未找出我很满意的答案。我正在寻找一个适合构建数据库的构建系统 - 即以正确的用户身份,以正确的顺序运行正确数据库实例中的所有SQL文件,并正确处理依赖关系等。什么是构建数据库的最佳构建系统?

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

+0

哪个数据库平台? MySQL,MSSQL,Postgres,Oracle还有其他的东西吗? – 2009-01-28 11:47:57

+0

Postgres主要为我自己,但它更多的是一般的好奇心,这就是为什么我把它打开。 – Graham 2009-01-28 13:07:23

回答

0

只是一个运行所有创建语句并按正确顺序导入的shell脚本。你也可以找到有趣的migrations(附带导轨)。它提供了一个像基础架构一样的make,让您维护一个数据库,其结构会随着时间的推移而发展。

假设您向某个表中添加了新列。在迁移过程中,您可以编写一段代码来描述添加列的要求,还可以回滚更改,以便您可以自动切换到不同版本的模式。尽管如此,我并不十分喜欢与Rails紧密集成,但它背后的原理非常有趣。

0

对于SQL Server,我只是使用SQLCMD.EXE和一堆.SQL文件的批处理文件。这不是完美的,但它似乎工作。

0

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

相关问题