sti*_*vlo 9 java yaml liquibase
我试图定义一个changeSet,使用liquibase在表中插入两行.为了做到这一点,我写了以下changeSet:
- changeSet:
id: 1.0/7
author: stivlo
changes:
-insert:
tableName: my_table
columns:
- column:
name: id
value: "1"
- column:
name: name
value: "One"
-insert:
tableName: my_table
columns:
- column:
name: id
value: "2"
- column:
name: name
value: "Two"
Run Code Online (Sandbox Code Playgroud)
当我启动Spring Boot应用程序时,会执行更改集,但不会插入行.
在DATABASECHANGELOG表中,我找到了一个原始的说法,即迁移已执行,但描述为"空",表示liquibase无法看到迁移中的任何更改.
如何修复我的yaml以便能够插入这两行?
PS我设法解决了嵌入SQL语句而不是使用liquibase插入的问题.
- changeSet:
id: 1.0/7
author: stivlo
changes:
- sql:
sql: insert into my_table (id, name) values (1, "One")
- sql:
sql: insert into my_table (id, name) values (2, "Two")
Run Code Online (Sandbox Code Playgroud)
这有效,但我仍然有兴趣知道如何正确定义liquibase插入.谢谢.
我一直在同一个问题上挣扎,我想分享一些想法。
首先,关于您的特定问题-我认为您的.yml格式不正确,尽管它可能只是stackoverflow格式。它看起来应该像这样:
- changeSet:
id: 1.0/7
author: stivlo
comment: "Some comments go here"
changes:
- insert:
tableName: my_table
columns:
- column:
name: id
value: "1"
- column:
name: name
value: "One"
- insert:
tableName: my_table
columns:
- column:
name: id
value: "2"
- column:
name: name
value: "Two"
Run Code Online (Sandbox Code Playgroud)
请注意,整个变更集的内容都是从- changeSet块的开头缩进的。
所有-标记后都应加上空格,否则在某些情况下您什么都看不到或出错,
顺便说一句,我希望您不要忘记databaseChangeLog文件顶部的块吗?
有关解决liquibase问题的方法:
(此职位的积分)
首先,正如Mattias B提到的那样,有一个非常有用的“ updateSQL”选项。我使用CLI,
java -jar liquibase.jar --driver=org.h2.Driver --classpath=h2-1.3.170.jar --changeLogFile=yourchangelogpath/changelog.yaml --url=jdbc:h2:D:/Variaciok/db/variation --username=sa --password= updateSQL
Run Code Online (Sandbox Code Playgroud)
您可以将几乎所有选项移至file,例如
driver: org.h2.Driver
classpath: h2-1.3.170.jar
changeLogFile: yourchangelogpath/changelog.yaml
url: jdbc:h2:D:/db/variation
username: sa
password:
Run Code Online (Sandbox Code Playgroud)
所以你的命令看起来像
java -jar liquibase.jar --defaultsFile=our_database.properties updateSQL
Run Code Online (Sandbox Code Playgroud)
或者,如果您命名文件,liquibase.properties您甚至可以跳过--defaultsFile,所以它只是
java -jar liquibase.jar updateSQL
Run Code Online (Sandbox Code Playgroud)
其次,如果您在运行程序或CLI中均未看到任何错误,则几乎可以确定问题是.yml格式错误
希望能帮助到你!
| 归档时间: |
|
| 查看次数: |
6374 次 |
| 最近记录: |