1
1
据我所知,唯一支持SQL Server的是 SQLFairy .它是用Perl编写的,功能非常丰富。xml2ddl也很好,但是如果它不支持您选择的DBMS,它就不真正可行。 |
2
2
NHiBiNe公司 SchemaExport tool 可以从或映射为任何NHibernate支持的DBMS方言生成适当的DDL。然而,正如其他人所暗示的那样,如果您在这个级别上工作,那么您实际上只限于DBMS之间相当薄的公分母。 |
3
1
我已经成功地使用了 Ruby / Rails ActudieCordRD Migrations 在Oracle、SQL Server 2005、MySQL和SQLite上。我想我可能在访问时也使用了它,但这可能是一个错误的内存。它还支持我所知道的PostgreSQL和DB2,要么“开箱即用”,要么通过额外的下载。如果你想要一些更具异国情调的东西,并且想要一个真正自我标榜的DIY项目,你可以自己编写适配器… 它确实很好地工作,但是您必须接受这一概念,它将限制您对平台特定功能的访问。不仅是AR,而且很可能还有任何不需要花费数不清的跨平台工具:例如,如果目标平台不支持触发器,您会怎么做?还是存储过程?(例如,mysql 4.0或sqlite)。任何跨平台系统都必须处理这样的问题(例如,我在与一个试图在SQL Server查询中应用Oracle外部联接运算符的版本搏斗之后,就对Crystal Reports产生了终生的仇恨)。 如果您坚持使用表、索引和更简单的约束,我希望您可以使用各种各样的平台。有一个理由建议您通常应该在数据库之外寻找可以进一步处理的内容。我不会再进一步了-这是一场宗教辩论… |
4
1
我相信 Liquibase 将执行您想要的操作,并将随着时间的推移管理数据库更改。 |
5
0
您的应用程序完全不依赖于数据库,这是必须具备的功能吗?相信您需要投入这么多的工作来支持这么多的数据库,这似乎是一个很大的延伸。最重要的是,您的数据层将非常复杂,因为每个RDBMS中都存在细微的差异。 |
6
0
您可能会成功地获得表及其关系的抽象表示,但如何处理视图、存储过程、触发器等? |
7
0
DDLUtils 似乎是正确的选择。工作得很好,即使这个项目最近不是很活跃。 编码很好,我对它没有任何问题(在mysql、oracle、h2db等上工作)。 实际上,目前还没有内置命令行,但是您可以从命令行启动Ant任务,或者编写自己的命令行包装器(这并不难……事实上,我是站在我这边做的)。 |
8
0
我用ddlutils做了一些基本的实验。我尝试过mysql,mssql和oracle,它工作得很好。检查表的创建、约束和索引。拒绝使用它,因为它是不活动的和阻滞剂的错误是开放的很长时间。 |