Liquibase 3.7.0 генерирует неправильный SQL-оператор createTable, отсутствующий «GENERATED DEFAULT AS IDENTITY» для столбца с autoIncrement - PullRequest
1 голос
/ 11 октября 2019

После запуска обновления liquibase из CLI:

java -cp liquibase-core-3.7.0.jar;liquibase-oracle-3.2.jar;slf4j-api-1.7.25.jar;
slf4j-simple-1.7.25.jar liquibase.integration.commandline.Main ...

Я получаю следующее исключение:

liquibase.exception.MigrationFailedException: Migration failed for change set ...
     Reason: liquibase.exception.DatabaseException: ORA-00907: missing right parenthesis
 [Failed SQL: (907) CREATE TABLE table_name (id NUMBER(38, 0)  (START WITH 10000) NOT NULL, ...

Это набор изменений:

  <changeSet author="changeset_author" id="changeset_id">
    <createTable tableName="table_name" remarks="remarks on table">
      <column autoIncrement="true" name="id" type="BIGINT" startWith="10000" remarks="remarks on column">
        <constraints primaryKey="true"/>
      </column>
      ...
    </createTable>
  </changeSet>

Когдас использованием liquibase-core-3.6.3, тот же набор изменений был успешно выполнен со следующим утверждением:

CREATE TABLE table_name (id NUMBER(38, 0) GENERATED BY DEFAULT AS IDENTITY (START WITH 10000) NOT NULL, ...

Таким образом, исключение вызвано отсутствием части " GENERATED DEFAULT AS IDENTITY ".

Однако я не могу использовать версии 3.6.0-3.6.3 из-за проблем с журналированием slf4j.

Может кто-нибудь подсказать, как решить эту проблему? Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...