0
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 ......

请帮我解决这个问题

编辑

似乎是这样的类似问题但我不知道如何在我的情况下更改脚本

4

0 回答 0