Невозможно заставить liquibase выполнить более 1 скрипта в одном файле - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть приложение с весенней загрузкой и sqlite db. Если я пишу два сценария в одном файле, только первый сценарий вносит изменения в БД. Таблица создает, но не вставляет данные, хотя в журнале я вижу, что оба сценария были выполнены. И если я пишу каждый скрипт в отдельный файл, то все в порядке, таблица создает и вставляет данные. Как заставить его выполнять более одного сценария в одном файле?

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, но здесь мое приложение падает с ошибкой времени выполнения "Причины: liquibase.exception.DatabaseException : У вас есть ошибка в вашем синтаксисе SQL; " Но синтаксис в порядке, и отдельно таблицы создаются без проблем:

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
);

1 Ответ

1 голос
/ 26 февраля 2020

Благодаря SteveDon ie проблема была решена легко: я просто добавил в начало моего файла с помощью сценариев с умножением следующие две строки:
--liquibase отформатирован sql
--changeset myname: create несколько таблиц splitStatements: true endDelimiter:;
и все заработало!

...