使用liquibase创建Postgres数据库

时间:2018-05-01 14:28:15

标签: java maven liquibase

我尝试使用liqubase创建一个空数据库。我使用this方法来做到这一点,但问题是它对我没用。

我使用的是Postgresql 10,我有maven和liqubase的配置:

 <plugin>
          <groupId>org.liquibase</groupId>
          <artifactId>liquibase-maven-plugin</artifactId>
          <version>3.0.5</version>
          <configuration>
             <propertyFile>src/main/resources/liquibase/liquibase.properties</propertyFile>
          </configuration>
          <executions>
              <execution>
                    <phase>process-resources</phase>
                    <goals>
                        <goal>update</goal>
                    </goals>
              </execution>
          </executions>
  </plugin>

我的liqubase.properties

changeLogFile=src/main/resources/liquibase/db.changelog.xml
driver=org.postgresql.Driver
dropFirst=false
url=jdbc:postgresql://localhost:5432/auth?createDatabaseIfNotExist=true
username=postgres
password=root

mvn clean package上的错误是:

  

org.postgresql.util.PSQLException:致命:数据库&#34; auth&#34;才不是   存在

2 个答案:

答案 0 :(得分:1)

Liquibase不会创建根本不存在的数据库。我还想象链接问题/答案中引用的url参数?createDatabaseIfNotExist=true可能是特定于MySql的。

答案 1 :(得分:1)

这稍微超出了您的问题范围,但是您可以对Docker postgres instance使用liquibase,并且根据docker-library关于环境变量的文档,将POSTGRES_DB设置为“ auth”(在您的情况),它将在docker映像启动时创建“ auth”数据库,然后liquibase可以与之交互。