我在Maven Java项目上使用FlywayDB进行迁移.我目前正在努力使其能够部署到Heroku.
在我的本地计算机上,我正在使用Maven Flyway插件来运行迁移:
$> mvn clean编译flyway:迁移
为了在heroku上做同样的事情,我通常会尝试:
$> heroku运行mvn flyway:迁移
但是,在构建阶段之后mvn不可用,因此会产生错误(mvn:未找到命令)
如何在Heroku上进行飞行路线迁移?
解决方法:
我认为最好的选择是在使用FlywayDB Java API的应用程序中创建一个小类.它可能看起来像这样:
class Migrator {
public static void main(String[] args) throws Exception {
...
Flyway flyway = new Flyway();
flyway.setDataSource(url, user, password);
flyway.migrate();
}
}
然后像这样在您的Procfile中创建一个条目:
migrate: java -cp target/classes:target/dependency/* Migrator
最后,根据需要使用heroku run migration运行它.
Heroku不将Maven包含在该消息中(即在运行时)的原因是因为未保留.m2目录.如果包含Maven,然后您运行了mvn命令,则它首先必须下载Internet. .m2目录未保留,因为这会使子段大小太大.
标签:maven,heroku,flyway,java 来源: https://codeday.me/bug/20191028/1950091.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。