Liquibase 为 postgres 创建架构

新手上路,请多包涵

如果数据库不存在,我正在使用 Dropwizard (1.0.0) 和 Liquibase 创建数据库。

这里的问题是我使用的是不同的 Postgres 架构(非公开)。似乎 Liquibase 之前无法创建此模式,是吗?我期待 Liquibase 生成此模式,但如果我尝试构建数据库,它总是会抛出“找不到名称 xx 的模式”。

原文由 Christian 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 699
1 个回答

即使 Liquibase 在其捆绑的更改/重构中没有 CREATE SCHEMA (因此在 dropwizard 期间不会生成一个 db dump ),您仍然可以将其作为变更集包含在迁移中changelog 使用 sql 标签,如下:

 <changeSet author="christian" id="1">
    <sql dbms="postgresql" endDelimiter=";">
        CREATE SCHEMA foo
    </sql>
</changeSet>

请注意,Liquibase 将PUBLIC 模式中创建它自己的 ,无论如何 - 在应用任何变更集之前:

如果您在 dropwizard 中运行 db migrate --dry-run ,您会看到 Liquibase 将首先执行

CREATE TABLE PUBLIC.DATABASECHANGELOGLOCK ...
CREATE TABLE PUBLIC.DATABASECHANGELOG ...

跑步前

CREATE SCHEMA foo;

原文由 fspinnenhirn 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题