我想为本地运行(而不是在容器中)的 PostgreSQL 数据库设置 Liquibase(使用 Docker)。我学习了多个教程,包括Docker Hub上的教程。
按照建议,我liquibase.docker.properties在我的中创建了一个文件<PATH TO CHANGELOG DIR>
classpath: /liquibase/changelog
url: jdbc:postgresql://localhost:5432/mydb?currentSchema=public
changeLogFile: changelog.xml
username: myuser
password: mypass
Run Code Online (Sandbox Code Playgroud)
才能跑docker run --rm --net="host" -v <PATH TO CHANGELOG DIR>:/liquibase/changelog liquibase/liquibase --defaultsFile=/liquibase/changelog/liquibase.docker.properties <COMMAND>。
当我运行时[...] generateChangeLog,我得到以下输出(带有选项--logLevel info):
classpath: /liquibase/changelog
url: jdbc:postgresql://localhost:5432/mydb?currentSchema=public
changeLogFile: changelog.xml
username: myuser
password: mypass
Run Code Online (Sandbox Code Playgroud)
看起来命令“成功”运行,但我无法changelog.xml在我安装的本地目录中找到该文件,即<PATH TO CHANGELOG DIR>. 然而,安装必须有效,因为它已成功连接到数据库,即容器能够访问和读取liquibase.docker.properties.
首先,我想我可能必须对 Docker “说”它可以在我的磁盘上写入,但似乎应该支持这一点 [来自 Docker Hub 上的描述]:
/liquibase/changelog 卷还可用于写入输出的命令,例如generateChangeLog
我缺少什么?预先感谢您的任何帮助! …