使用NHibernate“迁移”数据库

时间:2019-05-16 14:14:25

标签: nhibernate database-migration

我有一个使用NHibernate的程序,最近我们对数据库模型进行了更新,我们添加了一个表。现在,我们使用SQLite同步“中央”数据库的各个部分,以在程序中启用脱机支持。现在开始出现问题了……当用户拥有程序的更新版本,但是旧版本的数据库NHibernate无法正常工作。

因此,我想将数据库“迁移”到新架构。我有SchemaExport的睾丸,但是这清除了数据库中的所有数据。我必须手动创建表吗?

此外,我仅在尝试访问数据库中的花边加载属性时才注意到这一点,是否仍然可以查看模型是否与数据库架构相关?

1 个答案:

答案 0 :(得分:1)

改为使用SchemaUpdate

它将使用映射文件检查当前架构。如果映射文件(如您所说添加的表)中的任何更改将反映到基础RDBMS。 DDL将由NHibernate自动生成并执行以匹配更改。

示例代码如下:

SchemaUpdate schemaUpdate = new SchemaUpdate(configuration);
schemaUpdate.Execute(false, true);

根据需要,您可以使用Execute的两个参数-自我说明。