首页 > 解决方案 > 使用 NHibernate “迁移”数据库

问题描述

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

所以我想将数据库“迁移”到新模式。我有 testet SchemaExport,但这会清除数据库中的所有数据。我必须手动创建表吗?

此外,我只在尝试访问数据库中的花边加载属性时才注意到这一点,是否有办法查看模型是否与数据库模式相关?

标签: nhibernatedatabase-migration

解决方案


改为使用SchemaUpdate

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

示例代码如下所示:

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

根据您的需要,您可以使用两个参数Execute——不言自明。


推荐阅读