bla*_*sei 5 java hibernate hsqldb liquibase
我在 liquibase 和 hibernate 方面遇到了一个小问题。我希望 hibernate 在 hbm2ddl 设置为创建时创建模式,然后让 liquibase 使用 sql 脚本文件填充数据库。
我注意到在验证时它的行为与描述和创建时一样,尤其是在使用 hsqldb(在内存中)时的测试环境中。那时我似乎很盲目。
有没有办法让我预期的工作与 hsqldb 一起使用,就像在 hibernate 创建后填充 db 一样。感谢您阅读本文。
Liquibase 最好用作 hbm2ddl 的替代品。这样,您可以在数据库处于适合该数据的状态时进行数据填充,并且以后的变更集可以升级您插入的数据以及其他更改。如果先运行 hbm2ddl,然后运行 liquibase 来填充数据,则需要始终对插入数据结构进行更改。
使用 hibernate 和 liquibase 的一种方法是在开发过程中使用 ant 或 maven 下的 liquibase diff 工具,根据数据库和休眠模型之间的差异附加到更改日志文件中。确保您检查它正在尝试做什么,因为它并不总是您所期望的(它决定删除并添加一列而不是重命名它)。创建变更日志文件后,您可以像任何变更日志文件一样运行它,例如在应用程序启动时将其传递给 liquibase spring bean。您不需要同时使用 hbm2ddl 和 liquibase,因为 liquibase 使用 hbm2ddl 生成休眠“数据库”,liquibase 将与您当前的数据库进行比较。
有了这个,你的步骤是:
唯一的问题可能是 maven 可能不像 ant 和命令行那样支持 hibernate diff 工具,尤其是在 1.9 中。
如果你不想处理 liquibase diff 工具,你总是可以手动将 changeSets 附加到每次更改的更改日志文件。XML 格式旨在易于手动使用。在这种情况下,您的步骤是:
| 归档时间: |
|
| 查看次数: |
2992 次 |
| 最近记录: |