nhibernate - 使用 NHibernate “迁移”数据库
问题描述
我有一个使用 NHibernate 的程序,最近我们对数据库模型进行了更新,我们添加了一个表。现在我们使用 SQLite 来同步部分“中央”数据库,以在程序中启用离线支持。现在问题开始出现了... 当用户有更新版本的程序,但旧版本的数据库 NHibernate 将无法正常工作。
所以我想将数据库“迁移”到新模式。我有 testet SchemaExport
,但这会清除数据库中的所有数据。我必须手动创建表吗?
此外,我只在尝试访问数据库中的花边加载属性时才注意到这一点,是否有办法查看模型是否与数据库模式相关?
解决方案
改为使用SchemaUpdate
。
它将使用映射文件检查您当前的架构。如果映射文件(如您所说添加的表)中的任何更改将反映到底层 RDBMS。DDL 将由 NHibernate 自动生成并执行以匹配更改。
示例代码如下所示:
SchemaUpdate schemaUpdate = new SchemaUpdate(configuration);
schemaUpdate.Execute(false, true);
根据您的需要,您可以使用两个参数Execute
——不言自明。
推荐阅读
- git - 跟踪克隆存储库中的子模块分支
- soap - JAX-WS Metro,如何拦截具有无效字符/签名不匹配的正确加密/签名消息
- java - 使用抽象类内容反序列化自定义集合
- npm - 如何以别名或其他名称安装 NPM 包
- c# - 当 XSLT 转换的结果在其编码中无法表示时,直接使用回退字符
- javascript - 仅使用一个输入(即全局搜索)搜索对象中的多个属性
- python - Kivy多屏管理
- angular - Spring Security 看不到 Angular 传递的凭据
- javascript - 如何制作一个浮动标签,当焦点或在 React 中有内容时可以向上移动?
- javascript - 在javascript中为多个对象设置相同的功能