首页 文章

NHibernate中的Configuration.GenerateSchemaUpdateScript()是管理数据库模式更改的好方法

提问于
浏览
5

我'm using NHibernate mappings as a defining schema for my app in the development phase and for the schema definition I'm使用 NHibernate.Tool.hbm2ddl.SchemaExport() 方法生成一个createdcript .

现在,我已经考虑使用 Configuration.GenerateSchemaUpdateScript() 方法生成这样的数据库更改脚本:

var dialect = Dialect.GetDialect(configuration.Properties);
string[] schemaUpdateScript;
using (var conn = new SqlConnection(
        configuration.GetProperty("connection.connection_string")))
{
  conn.Open();
  schemaUpdateScript = configuration.GenerateSchemaUpdateScript(dialect, 
                            new DatabaseMetadata(conn, dialect));
}

在此之后,我将架构更新脚本保存到以时间戳命名的脚本文件 .

这是在NHibernate中管理模式更改的好方法吗?

有什么重大缺点吗?

1 回答

  • 0

    简而言之 - 这取决于 . 我已经用它来创建脚本,然后我手工编辑,但我确定我在某处读到它不会为现有表创建新的非空列 - 这似乎有意义,因为NHibernate如何知道如何填充列?

相关问题