накатываю миграции. Вот так выглядт чистые sql'ные миграции (изначально они в ямле). PostgreSQL автоматически создает внешние ключи и связывает между собой таблицы. Это конечно прикольно, но мне бы хотелось это контролировать самому. В доках не нашел описание этого поведения.
Внешний ключ создается: company.environment_id -> environment.id
--liquibase formatted sql
--changeset user:1
CREATE TABLE environment (id INTEGER GENERATED BY DEFAULT AS IDENTITY NOT NULL, name VARCHAR(48), production BOOLEAN DEFAULT FALSE NOT NULL, url_api VARCHAR(128), web_url VARCHAR(128), admin_url VARCHAR(128), created_at TIMESTAMP WITHOUT TIME ZONE, updated_at TIMESTAMP WITHOUT TIME ZONE, CONSTRAINT ENVIRONMENT_PKEY PRIMARY KEY (id));
--changeset user:2
CREATE TABLE company (id INTEGER GENERATED BY DEFAULT AS IDENTITY NOT NULL, environment_id INTEGER NOT NULL, admin_company_id INTEGER NOT NULL, production BOOLEAN DEFAULT TRUE NOT NULL, company_name VARCHAR(128), test_login VARCHAR(128), test_password VARCHAR(128), logo_url TEXT, created_at TIMESTAMP WITHOUT TIME ZONE, updated_at TIMESTAMP WITHOUT TIME ZONE, CONSTRAINT COMPANY_PKEY PRIMARY KEY (id));
Вопрос собственно, куда копать или тут надо руки менять ?
> PostgreSQL автоматически создает внешние ключи и связывает между собой таблицы. Это не он, а что-то другое — ищите. Просто выполнение этих changeset же никаких FK не создаёт, верно? > В доках не нашел описание этого поведения. Потому что его там нет (как и поведения). :) > Вопрос собственно, куда копать или тут надо руки менять ? Можно в логи, например (чтобы узнать, что это Вам "помогает", создавая FK). Кстати, по поводу типов в этих таблицах — почитали бы Вы https://wiki.postgresql.org/wiki/Don%27t_Do_This , что ли.
Обсуждают сегодня