【问题标题】:How to Ensure Fluent NHibernate Mappings and Migrations are in sync?如何确保 Fluent NHibernate 映射和迁移是同步的?
【发布时间】:2011-07-08 21:27:33
【问题描述】:

我使用 Migrator Dot Net 对我的数据库架构进行版本控制,并使用 Fluent NHibernate 将模型映射到架构。

是否有一种好的(阅读:自动化)方法可以将运行迁移生成的架构与 NH 架构导出生成的架构进行比较,以确保表定义、键、索引等同步?

我唯一能想到的就是导出两个模式,然后使用一些未知的(如果你知道一个好的就回答!)库来编写脚本,然后比较脚本字符串。

有没有更好的办法?

编辑:为了澄清,我不仅要验证表、列和列类型,还要验证索引和外键。

【问题讨论】:

    标签: nhibernate orm fluent-nhibernate database-migration


    【解决方案1】:

    NHibernate 中有一个模式验证器:

    SchemaValidator validator = new SchemaValidator(configuration);
    validator.Validate();
    

    【讨论】:

    • 看起来很完美,这是否验证索引和键以及表?
    • 我其实不知道。我希望它可以验证SchemaExport 生成的所有内容,它们也是键、索引和约束。可以肯定的是,尝试一下或阅读代码。
    • 查看代码,看起来它确实检查了身份字段,但我认为它不是检查键或索引,这很糟糕。我想知道添加它会有多难,也许我会走那条路。
    【解决方案2】:

    我认为检查 FNH 生成的映射与您的数据库架构是否同步就足够了。
    为此,您可以使用this simple test

    【讨论】:

    • 我认为这仍然有效,但它有点过时了。 Stefan 和 Sly 是最新的。
    猜你喜欢
    • 1970-01-01
    • 2011-04-10
    • 2012-10-19
    • 1970-01-01
    • 2011-07-11
    • 2011-06-18
    • 1970-01-01
    • 2012-04-03
    • 1970-01-01
    相关资源
    最近更新 更多