小编lep*_*pak的帖子

Liquibase dropFirst with postgis

我正在尝试通过Liquibase将postgis扩展添加到我的postgressql数据库,这是我如何做到的:

<sql>CREATE EXTENSION IF NOT EXISTS postgis;</sql>
Run Code Online (Sandbox Code Playgroud)

它运行正常,问题是当我正在开发时我希望每次重新启动我的Web服务器时都重置我的数据库,所以我在春天设置liquibase就像这样

@Bean(name = "liquibase")
@DependsOn("dataSource")
@Profile("dev")
public SpringLiquibase liquibaseDev() {
    SpringLiquibase springLiquibase = new SpringLiquibase();
    springLiquibase.setDataSource(this.dataSource());
    springLiquibase.setChangeLog("classpath:liquibase.xml");
    springLiquibase.setDefaultSchema(this.environment.getProperty("jdbc.defaultSchema"));
    springLiquibase.setDropFirst(true);
    return springLiquibase;
}
Run Code Online (Sandbox Code Playgroud)

所以Liquibase试图在启动时删除所有内容,包括postgis视图.这导致了这个错误

org.postgresql.util.PSQLException:错误:无法删除视图geography_columns,因为扩展postgis需要它Indice:您可以删除扩展postgis.

但是我应该如何告诉liquibase在放弃其他所有内容之前删除扩展?有没有办法告诉Liquibase如何删除数据库?

我正在使用的版本:

  • Spring IO 2.0.7
  • Liquibase 3.4.2(Spring IO设置的版本)
  • Postgres 9.5

spring postgis liquibase

6
推荐指数
1
解决办法
1355
查看次数

标签 统计

liquibase ×1

postgis ×1

spring ×1