java - 将清空在 Liquibase 输入中为我的 spring 实体创建初始 DDL 脚本?
问题描述
我试图DDL (create, alter, drop)
为我的弹簧实体生成初始值。我正在使用Liquibase
,我是新手。
我了解到变更集可以scripts
为数据库产生差异。所以我很好奇一个空的变更集是否可以为我创建初始脚本。
将为我创建一个空的databaseChangeLog
ddl 脚本吗?如果不是,我如何使用 Liquibase 实现这一目标?
空change-log
,我的意思是这个
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
<changeSet id="01" author="hhimanshu"></changeSet>
</databaseChangeLog>
既然我知道change-log
可以转换为脚本,我该如何change-log
为我的 spring 实体生成?
解决方案
简答NO。您需要手动创建更改集或使用generateChangeLog从现有数据库生成更改日志。
所以流程应该是:
- 使用 jpa 自动生成创建您的数据库(例如使用 h2 db)
- 使用上面的命令生成变更日志
- 检查生成的变更日志是否正常
- 将更改日志添加到您的应用程序
- 执行 changelog 并检查是否一切正常
推荐阅读
- reactjs - 问题将反应类组件转换为具有状态的功能组件未定义
- angular - 在 mat-checkbox 检查 Angular 上隐藏/显示表单字段
- javascript - 将数组中的值的数量存储到另一个数组中
- core-web-vitals - 确定属性节点为空时的累积布局偏移
- angular - 从源“http://localhost:4200”获取“okta-api-url”的 Okta Api 访问已被 CORS 策略阻止
- flutter - 使用 BLoC 的 Flutter 应用程序中的状态不会改变
- javascript - 我怎样才能只在一段时间内运行一个函数?javascript
- unity3d - 场景中的物体看起来不错,但在游戏视图中看起来太像素化 Unity 2019.4
- xcode - Xcode - 档案不在管理器中
- android - 在 Android API 29 和 API 30 中创建到 /sdcard/Download 文件夹下的文件夹