Я использую Liquibase для обновления некоторых таблиц, и мне кажется, что я сталкиваюсь с ошибкой, что всякий раз, когда в моем .yaml
файле есть ;
, он выдает ошибку (помещается только в части, так как он просто повторяется то же сообщение об ошибке):
SEVERE 1/11/18 11:39: liquibase: _master.xml: Таблицы / Team / Team.updateTeamNames.yaml :: 1 :: mayj4: Ch
ange Установить таблицы / Team / Team.updateTeamNames.yaml :: 1 :: mayj4 не удалось. Ошибка: у вас есть ошибка в вашем S
Синтаксис QL; проверьте правильность синтаксиса для руководства, соответствующего версии вашего сервера MySQL.
e рядом с «ОБНОВЛЕНИЕ команды SET Name =» B «WHERE Name =« Y »; ОБНОВЛЕНИЕ Команда SET Name = 'C' WHERE Name 'в строке 1
[Ошибка SQL: команда UPDATE SET Name = 'A' WHERE Name = 'X'; ОБНОВЛЕНИЕ Команда SET Name = 'B' WHERE Name = 'Y';
ОБНОВЛЕНИЕ Команда SET Name = 'C' WHERE Name = 'Z']
liquibase.exception.DatabaseException: у вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, что с
или соответствует вашей версии сервера MySQL для правильного синтаксиса для использования рядом с 'UPDATE Team SET Name =' B '
ГДЕ Имя = 'Y'; UPDATE Team SET Name = 'C' WHERE Name 'в строке 1 [Ошибка SQL: UPDATE Team SET Name
= 'A' ГДЕ Имя = 'X'; ОБНОВЛЕНИЕ Команда SET Name = 'B' WHERE Name = 'Y'; ОБНОВЛЕНИЕ Команда SET Name = 'C' ГДЕ N
ame = 'Z']
Я также использую эту команду:
liquibase --driver = com.mysql.cj.jdbc.Driver --classpath = C: \ mysql-connector-java-8.0.13 --logLevel = суровый --changeLogFile = _master.xml --url = " jdbc: mysql: // localhost: 3306 / resource? useSSL = false & allowPublicKeyRetrieval = true "--username = root --password = badpassword123 update
Вот файл .yaml
с полным SQL.
---
databaseChangeLog:
- changeSet:
author: mayj4
id: 1
changes:
- sql:
sql:
UPDATE Team SET Name = 'A' WHERE Name = 'X';
UPDATE Team SET Name ='B' WHERE Name ='Y';
UPDATE Team SET Name ='C' WHERE Name ='Z';
Что я использую
- Liquibase 3.6.2
- MySQL Connector Java 8.0.13
- MySQL Workbench & Server 8.0.13
Я пытался добавить splitStatements: true
к .yaml
, но это не имеет значения, как предлагает документация Liquibase .
Обновление 1
Кажется, что даже при удалении точки с запятой все равно происходит сбой, так что это можно сделать при выполнении нескольких запросов.