Hi,
I use a Postgres extension (see GitHub - arkhipov/acl: Access Control Lists (ACL) PostgreSQL Extension) for access control lists. The extension provides the ace type.
My Liquibase script looks like follows:
–liquibase formatted sql
–changeset users:1
CREATE EXTENSION IF NOT EXISTS acl;
create table postgres_users.tve_e3users_domain (
id bigint not null,
acl_uuid ace_uuid[],
owners uuid[],
tve_name varchar(255),
primary key (id)
);
If I run this with a normal postgres client, the table is created.
With Liquibase not.
What happens:
WARN liquibase.executor:37 - extension “acl” already exists, skipping
ERROR liquibase.changelog:37 - ChangeSet db/changelog/db.changelog.sql::1::users encountered an exception.
ERROR: type “ace_uuid” does not exist
Position: 107 [Failed SQL: (0) create table postgres_users.tve_e3users_organizationalunit (
id bigint not null,
acl_uuid ace_uuid,
owners uuid,
tve_name varchar(255) not null,
tve_uuid uuid not null,
tve_e3users_organizationalunit_parent bigint,
primary key (id)
)]
From the log, I conclude that the acl extension is loaded. This is confirmed by the fact that if I create the table manually after Liquibase finishes, the table is created.
Why can I create the table manually, but not with Liquibase?
thanks,
– Jaap