function setupMigrationDB(){
#some other stuff code ..
MIGRATIONS_DIR=$8
cd $MIGRATIONS_DIR
liquibase --classpath="${CLASSPATH}" --driver="${DRIVER}" --username="${DB_ADMIN_USER}" --password="${DB_ADMIN_PWD}" --changeLogFile=update.xml --url="${URL}" update -Dprefix="${PREFIX}"
cd ../../
}
setupMigrationsDB arg1 ..... arg7 ./migrations/testdb
我在 bash 脚本中使用了上述函数。但是 liquibase 工具无法找到相应的目录 e。G
-install[dir]
--migrations[dir]
---testdb[dir]
-setup.sh
setup.sh 脚本包含上述函数,我尝试将函数内的目录更改为例如
testdb
并运行 liquibase 工具。
./setup.sh
Liquibase Home: /usr/local/liquibase
Liquibase Update Failed: /vagrant/testpkg/install/migrations/testdb does not exist
如何修复更改目录问题,以便 liquibase 找到所需的 update.xml 文件。我本可以提供相对路径,例如 ./migrations/testdb/update.xml 但 liquibase 不太尊重这一点,因为它未能包含所有变更日志文件 relativeToChangelogFile="true"
失败
从命令行运行该工具可以完美地工作,例如
cd ./migrations/testdb && liquibase ......
请帮我解决这个问题
编辑
似乎是这样的类似问题,但我不知道如何在我的情况下更改脚本