gpt4 book ai didi

NHibernate 代码优先迁移管理工具,如 EntityFramework、Django-South

转载 作者:行者123 更新时间:2023-12-04 20:45:12 25 4
gpt4 key购买 nike

TL;DR 是否有任何工具可以管理(自动创建、执行)NHibernate 的迁移(使用 native .NET 语言)?

我来自鼓励开发 Code-First 的 Django 背景。还有用于迁移的事实上的“行业标准”库,称为 South。
更改架构的典型工作流程如下:

  • 更改模型代码(即添加/删除/修改类和/或属性)[当然,模型代码使用原生应用程序语言 - 此处:python]
  • 运行自动生成迁移代码 [迁移代码是 python] 的 schemamigration 命令并将其写入“迁移”子目录。
  • 如有必要,请调整自动生成的代码。自动生成器非常智能,但不足以处理例如列重命名。
  • 运行 migrate 命令,它会查找“migrations”目录并执行所有尚未执行的迁移(这个是使用迁移历史表计算出来的)

  • 这不仅对于开发(甚至 SCRUM 变化如此之快)而且对于更新生产也非常方便 - 只需确保将开发机器和生产服务器上的迁移分开即可。
    它对于生产也非常安全,因为您可以在应用迁移之前查看并有选择地修改迁移。

    在评估 .NET 的 ORM 时,我尝试了 Entity Framework 5,我发现它与 Django-South 的功能非常相似。
    有一个 Package-Manager Console 命令用于创建可能在执行前修改的迁移代码,有一个单独的命令执行所有尚未执行的迁移,并将它们标记为在迁移历史记录中执行。

    NHibernate 有没有这样的工具?

    我知道 SchemaUpdate功能,但 AFAIK 它只是更新所有需要一步更新的东西。我不会在生产中使用它,也不会在数据丢失不是灾难但仍然有些痛苦的开发过程中使用它。
    我也知道 SchemaUpdate 可能用于将 SQL 语句导出到文件而不是执行它们,但它并不方便,因为没有历史迁移的自动管理。另外,必须手工编写 SQL ;)

    最佳答案

    不知道这是否真的能回答您的问题,但要自动更改架构并更新您的映射,甚至设计您的映射,为此使用工具是个好主意。特别是如果您有一个非常大的数据库/域模型。

    我目前正在使用 entity developer from devart .

    我们比较了多种类似的工具,但这个工具真的很震撼。它只是具有如此多的功能,还提供了添加自定义 T4 模板的功能,以从模型中生成您想要的任何内容,甚至将自定义属性添加到模型设计器,然后可以在代码生成器部分中使用...

    您还可以手动将实体/属性重命名为更具可读性的名称,即使在更新数据库架构后,该工具也会保留它...

    当然,它同时支持模型或数据库优先方法......

    您可以下载 Cause 的试用版,以确定这是否符合您的需求...

    关于NHibernate 代码优先迁移管理工具,如 EntityFramework、Django-South,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19045701/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com