场景很简单,一个模块化的应用程序,每个模块都必须在升级期间管理自己的数据库部分。
使用的 ORM 是 NHibernate,所以如果有什么东西可以很好地配合它,那就是一个额外的优势。
此外,它需要能够在没有外部工具(MSBuild 等)的情况下执行,而应该通过 ADO.NET(如 NHibernate 的 SchemaUpdate)运行。
场景很简单,一个模块化的应用程序,每个模块都必须在升级期间管理自己的数据库部分。
使用的 ORM 是 NHibernate,所以如果有什么东西可以很好地配合它,那就是一个额外的优势。
此外,它需要能够在没有外部工具(MSBuild 等)的情况下执行,而应该通过 ADO.NET(如 NHibernate 的 SchemaUpdate)运行。
我发现Fluent Migrator效果很好。如果您使用当前日期和时间(例如 V201209111740UpdateTableX)对迁移进行版本控制,那么您将不会遇到版本号冲突的问题,并且 Fluent Migrator 将运行任何未按顺序运行的版本(afaik)。它没有专门的“部分”版本,但通常使用它应该可以工作。
此外,您可以在自己的应用程序中运行它 - 您不需要通过 MSBuild 或通过它自己的工具运行它