在编写在Fluent Nhibernate/Nhibernate上运行的应用程序时,有一点让我担心。我认为任何ORM都是如此(甚至不使用ORM),但是......我猜这个词是'研究领域',涉及部署后更新数据库的最佳实践和方法。部署后处理nHibernate/Fluent nHibernate中的架构更新
在nHibernate中,我建立了一个SessionFactory,并有一个初始运行,它根据映射写出数据库。这很好,我甚至可以手动编写数据库。但是当我的客户回来并想要添加新内容时呢?我可以附加到数据库而不会丢失数据吗?我对这一切都是全新的,自从这个项目开始以来一直困扰着我,而且我真的不知道要确定我可以在部署后管理该程序的方向。
我看过其他堆栈溢出问题,我可以找到关于这个主题 - 其中一个甚至没有接受的答案(虽然问题本身是一种模糊),但我确实发现了工具http://www.red-gate.com/products/sql-development/sql-compare/从问题 Tool to upgrade SQL Express database after deployment虽然我想知道是多么好的'战略'是。
好吧,我知道自动映射。我更关心的是如果模式发生变化,恐怕它可能会自动更改我的数据库并转储我的数据。 – Ciel 2011-05-10 13:48:47
除非您在应用程序中编写代码来应用由NHibernate生成的模式脚本,否则这些脚本将不会自动应用。这些.NET [数据库迁移工具](http://stackoverflow.com/questions/313/net-migrations-engine)可以帮助更新具有模式更改的数据库,而不会丢失任何现有数据。 – 2011-05-10 13:56:11