orl*_*ade 5 continuous-integration maven flyway
我正在尝试在我们服务器的多个(大约6个)实例上进行Flyway迁移.每个都是使用Bamboo从Git自动构建和部署的,所以我真的希望能够使用flyway:migrateMaven目标,以便每个服务器在下次部署时自行迁移.
但是我现在只是尝试Flyway,所以现有的数据库都没有init.我想知道我是否有可能以某种方式在Maven中指定Flyway应该init是否已经,然后migrate每次?
该迁移文档表明,"迁徙路线将自动创建元数据表,如果它不存在",但在实际上flyway:migrate执行的目标,我得到的错误:
无法执行目标com.googlecode.flyway:flyway-maven-plugin:2.2:在项目mutopia-server上迁移(默认):Flyway错误:com.googlecode.flyway.core.api.FlywayException:发现非空模式"public "没有元数据表!首先使用init()初始化元数据表. - > [帮助1]
orl*_*ade 12
我没有用Maven解决这个问题,因为我转而使用带有Spring 的API版本(在所有方面似乎都更好).
最初它有同样的问题 - bean init-method="migrate"会在非空模式上失败,需要init先调用.然而,通过查看Flyway bean的来源,我注意到我可以设置initOnMigrate为true,它会为我做.我不确定为什么这不在文档中; 对于那些不玩豆类的人来说,这并不是显而易见的.
无论如何,如果你还有一个关于Flyway抱怨的非空架构,那么bean applicationContext.xml应该如下所示:
<bean id="flyway" class="com.googlecode.flyway.core.Flyway" init-method="migrate">
<property name="dataSource" ref="dataSource" />
<property name="initOnMigrate" value="true" />
</bean>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11628 次 |
| 最近记录: |