我尝试使用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;才不是 存在
答案 0 :(得分:1)
Liquibase不会创建根本不存在的数据库。我还想象链接问题/答案中引用的url参数?createDatabaseIfNotExist=true
可能是特定于MySql的。
答案 1 :(得分:1)
这稍微超出了您的问题范围,但是您可以对Docker postgres instance使用liquibase,并且根据docker-library关于环境变量的文档,将POSTGRES_DB
设置为“ auth”(在您的情况),它将在docker映像启动时创建“ auth”数据库,然后liquibase可以与之交互。