NHibernate SchemaUpdate在生产代码中是否安全?

Ken*_*ran 14 nhibernate fluent-nhibernate production-environment

为简单起见.我在运行时使用Fluent NHibernate的Automapping和NHibernate的SchemaUpdate.在每次运行时,Automapper为所有实体类创建映射,SchemaUpdate将模式应用于现有数据库.我惊喜地发现它对空数据库也能正常工作.到目前为止,它在开发环境中运行良好,并且让我能够快速响应错误.

我的问题是它是否足够可靠留在生产代码中.显然,每次程序在生产环境中启动时都不需要运行,但它对增量产品更新很有用(尽管我不打算在产品发布后对域进行任何重大更改).

(也许我真正的问题应该是结合使用这两个工具有多安全?)

更新

该应用程序有两个版本:独立桌面和多用户客户端/服务器.此外,由于业务领域(税务软件)的性质,我每年都有一个干净的数据库.

Gre*_*ech 13

为了能够在生产代码中运行,生产应用程序用于连接到数据库的帐户必须具有更改数据库模式的权限.

无论NHibernate代码的质量/可靠性如何,仅此一项就可以阻止您采用这种方法.


Jam*_*Ide 9

我不会冒险.运行良好的是在已从生产中恢复的登台服务器上运行它,然后使用数据库比较工具(如Red Gate)检查更改并生成脚本.


Ser*_*Seb 8

您可能需要考虑SchemaUpdate将始终进行加性和非破坏性更改,从而导致过时的列和可空列,它们应该是不可为空的.

换句话说,绝对不能用于生产.

  • 那有什么好的选择呢?某种类型的迁移?您会为此推荐任何好的.net框架?谢谢 (2认同)