I'm using Dropwizard (1.0.0) and Liquibase to create a database if it's not existing.
Problem here is that I'm using a different Postgres schema (not public). It seems like Liquibase is not able to create this schema before is it? I was expecting Liquibase to generate this schema, but it always throws a "Schema with name xx not found" if I try to build the database.
Even though Liquibase does not have CREATE SCHEMA
in its bundled changes/refactorings (and therefore doesn't generate one during a dropwizard db dump
), you could still include this as a changeset in your migrations changelog using the sql
tag, as follows:
<changeSet author="christian" id="1">
<sql dbms="postgresql" endDelimiter=";">
CREATE SCHEMA foo
</sql>
</changeSet>
Note that Liquibase will create it's own tables in the PUBLIC
schema, regardless - before applying any changesets:
If you run db migrate --dry-run
in dropwizard, you'll see that Liquibase would first execute
CREATE TABLE PUBLIC.DATABASECHANGELOGLOCK ...
CREATE TABLE PUBLIC.DATABASECHANGELOG ...
before running
CREATE SCHEMA foo;