无法使 liquibase 在一个文件中执行超过 1 个脚本
Cannot make liquibase execute more than 1 script in one file
我有一个 spring-boot 应用程序和 sqlite 数据库。
如果我在一个文件中写两个脚本,只有第一个脚本对数据库进行更改。 table 创建但没有数据插入,尽管在日志中我看到两个脚本都已执行。
如果我将每个脚本写入单独的文件,那么就可以了,table 创建并插入数据。
如何让它在一个文件中执行多个脚本?
CREATE TABLE IF NOT EXISTS acl_class
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
class character varying UNIQUE NOT NULL
);
INSERT INTO acl_class
(class)
VALUES
('models.User');
mysql db 也有同样的问题,但我的应用程序因运行时错误而失败 "Caused by: liquibase.exception.DatabaseException: You have an error in your SQL syntax;" 但是语法没问题,另外 table 正在创建时没有任何问题:
CREATE TABLE IF NOT EXISTS acl_class
(
id INT AUTO_INCREMENT PRIMARY KEY,
class VARCHAR(255) UNIQUE NOT NULL
);
CREATE TABLE IF NOT EXISTS acl_sid
(
id INT AUTO_INCREMENT PRIMARY KEY,
principal boolean NOT NULL,
sid VARCHAR(255) UNIQUE NOT NULL
);
感谢 SteveDonie,问题很容易解决:我只是在我的文件开头添加了两行乘法脚本:
--liquibase 格式 sql
--changeset myname:create-多表splitStatements:true endDelimiter:;
并且成功了!
我有一个 spring-boot 应用程序和 sqlite 数据库。 如果我在一个文件中写两个脚本,只有第一个脚本对数据库进行更改。 table 创建但没有数据插入,尽管在日志中我看到两个脚本都已执行。 如果我将每个脚本写入单独的文件,那么就可以了,table 创建并插入数据。 如何让它在一个文件中执行多个脚本?
CREATE TABLE IF NOT EXISTS acl_class
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
class character varying UNIQUE NOT NULL
);
INSERT INTO acl_class
(class)
VALUES
('models.User');
mysql db 也有同样的问题,但我的应用程序因运行时错误而失败 "Caused by: liquibase.exception.DatabaseException: You have an error in your SQL syntax;" 但是语法没问题,另外 table 正在创建时没有任何问题:
CREATE TABLE IF NOT EXISTS acl_class
(
id INT AUTO_INCREMENT PRIMARY KEY,
class VARCHAR(255) UNIQUE NOT NULL
);
CREATE TABLE IF NOT EXISTS acl_sid
(
id INT AUTO_INCREMENT PRIMARY KEY,
principal boolean NOT NULL,
sid VARCHAR(255) UNIQUE NOT NULL
);
感谢 SteveDonie,问题很容易解决:我只是在我的文件开头添加了两行乘法脚本:
--liquibase 格式 sql
--changeset myname:create-多表splitStatements:true endDelimiter:;
并且成功了!