&引用;“迁移”;具有NHibernate的数据库

&引用;“迁移”;具有NHibernate的数据库,nhibernate,database-migration,Nhibernate,Database Migration,我有一个使用NHibernate的程序,最近我们对数据库模型进行了更新,我们添加了一个表。现在,我们使用SQLite同步“中心”数据库的部分内容,以便在程序中实现脱机支持。现在问题开始出现了。。。当用户拥有程序的更新版本,但数据库的旧版本NHibernate无法正常工作时 因此,我想将数据库“迁移”到新模式。我使用SchemaExport进行了测试,但这会清除数据库中的所有数据。我必须手动创建表吗 此外,我只在尝试访问数据库中加载了花边的属性时才注意到这一点,是否仍然可以查看模型是否与数据库架构

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

因此,我想将数据库“迁移”到新模式。我使用
SchemaExport
进行了测试,但这会清除数据库中的所有数据。我必须手动创建表吗

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

请改用

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

示例代码如下所示:

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

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

您知道是否有任何方法可以只使用一张桌子吗?(我尝试了
config.AddAssembly(typeof(MyTableModel).Assembly)
,但这似乎需要完整的模型,而不仅仅是MyTableModel表)。好的,它适用于所有模型。实际上,它应该自动找出差异。为此,它必须扫描所有模型。