Я использую mysql 8.0.x и пытаюсь использовать liquibase версии 3.6.2 для применения журнала изменений.
Когда я пытаюсь обновить журнал изменений через командную строку, он отлично работает с форматом yaml, но формат sql не работает для набора изменений.
Здесь - полная установка.command-to-run.bat
file - это точная команда, которую я пытаюсь запустить.
Я думаю, что проблема такая же, как this , но это решение тоже не работает.Их проблема в том, что форматирование файла не должно быть в формате спецификации UTF-8, хотя эта проблема устранена, но я попытался изменить формат, но проблема все еще остается.
Я использую тот же файл sql.Я получаю следующую ошибку:
Unexpected error running Liquibase: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '--liquibase formatted sql
--changeset bob:1
create table item (
id int not nu' at line 1 [Failed SQL: --liquibase formatted sql
--changeset bob:1
create table item (
id int not null primary key,
name varchar(255) not null,
description varchar(255)
)]
liquibase.exception.MigrationFailedException: Migration failed for change set changelog-master.xml::third::akshay:
Reason: liquibase.exception.DatabaseException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '--liquibase formatted sql
--changeset bob:1
create table item (
id int not nu' at line 1 [Failed SQL: --liquibase formatted sql
--changeset bob:1
create table item (
id int not null primary key,
name varchar(255) not null,
description varchar(255)
)]
at liquibase.changelog.ChangeSet.execute(ChangeSet.java:637)
at liquibase.changelog.visitor.UpdateVisitor.visit(UpdateVisitor.java:53)
at liquibase.changelog.ChangeLogIterator.run(ChangeLogIterator.java:78)
at liquibase.Liquibase.update(Liquibase.java:202)
at liquibase.Liquibase.update(Liquibase.java:179)
at liquibase.integration.commandline.Main.doMigration(Main.java:1205)
at liquibase.integration.commandline.Main.run(Main.java:191)
at liquibase.integration.commandline.Main.main(Main.java:129)
Caused by: liquibase.exception.DatabaseException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '--liquibase formatted sql
--changeset bob:1
create table item (
id int not nu' at line 1 [Failed SQL: --liquibase formatted sql
--changeset bob:1
create table item (
id int not null primary key,
name varchar(255) not null,
description varchar(255)
)]
at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:356)
at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:57)
at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:125)
at liquibase.database.AbstractJdbcDatabase.execute(AbstractJdbcDatabase.java:1229)
at liquibase.database.AbstractJdbcDatabase.executeStatements(AbstractJdbcDatabase.java:1211)
at liquibase.changelog.ChangeSet.execute(ChangeSet.java:600)
... 7 common frames omitted
Caused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '--liquibase formatted sql
--changeset bob:1
create table item (
id int not nu' at line 1
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.StatementImpl.executeInternal(StatementImpl.java:782)
at com.mysql.cj.jdbc.StatementImpl.execute(StatementImpl.java:666)
at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:352)
... 12 common frames omitted
For more information, please use the --logLevel flag