我有一个使用NHibernate的程序,最近我们对数据库模型进行了更新,我们添加了一个表。现在,我们使用SQLite同步“中央”数据库的各个部分,以在程序中启用脱机支持。现在开始出现问题了……当用户拥有程序的更新版本,但是旧版本的数据库NHibernate无法正常工作。
因此,我想将数据库“迁移”到新架构。我有SchemaExport
的睾丸,但是这清除了数据库中的所有数据。我必须手动创建表吗?
此外,我仅在尝试访问数据库中的花边加载属性时才注意到这一点,是否仍然可以查看模型是否与数据库架构相关?
答案 0 :(得分:1)
改为使用SchemaUpdate
。
它将使用映射文件检查当前架构。如果映射文件(如您所说添加的表)中的任何更改将反映到基础RDBMS。 DDL将由NHibernate自动生成并执行以匹配更改。
示例代码如下:
SchemaUpdate schemaUpdate = new SchemaUpdate(configuration);
schemaUpdate.Execute(false, true);
根据需要,您可以使用Execute
的两个参数-自我说明。