Liquibase: addForeignKeyConstraint не поддерживается для SQLite - PullRequest
1 голос
/ 06 мая 2020

Использование следующего набора изменений в Liquibase для создания таблицы с внешним ключом возможно и работает.

<changeSet author="cibn" context="initialSchema" id="initialSchema-edited-1.0.4">
    <createTable tableName="prices">
        <column name="articleId" type="String">
            <constraints nullable="false" foreignKeyName="fk_articles_articleId" references="articles(articleId)"/>
        </column>
...
</changeSet>

Однако изменение addForeignKeyConstraint после создания начальной схемы не поддерживается.

https://www.liquibase.org/documentation/changes/add_foreign_key_constraint.html

Почему? и можно ли это изменить?

1 Ответ

0 голосов
/ 06 мая 2020

Я считаю, что это потому, что ADD CONSTRAINT не поддерживается SQLite для функции ALTER TABLE, и это именно то, что Liquibase делает во время addForeignKeyConstraint изменения.

Вот документация SQL Функции, которые SQLite не реализует

Поддерживаются только варианты RENAME TABLE, ADD COLUMN и RENAME COLUMN команды ALTER TABLE. Другие виды операций ALTER TABLE, такие как DROP COLUMN, ALTER COLUMN, ADD CONSTRAINT и т. Д., Опускаются.

...