是否可以在Spring框架中动态添加数据库表列?
我的意思是使用Spring DAO来改变表,以便在不重建或编译的情况下添加新列。
我发现使用CDbMigration在Yii(php)框架中可以实现这一点。
答案 0 :(得分:1)
Spring实际上并不打算进行数据库迁移,你应该看看像FlyWay这样的工具,它们会处理它。
答案 1 :(得分:1)
虽然最好将其作为Maven生命周期的一部分来实现,但在程序上可以使用Spring框架实现相同的功能。我不建议使用基于DAO的方法。正如@Eric Citaire所提到的,建议使用像Flyway,Liquibase这样的框架。现在这两个框架都能很好地与Spring配合使用,并且具有很好的集成性。
在flyway案例中,需要添加的配置是:
<bean id="flyway" class="org.flywaydb.core.Flyway" depends-on="dataSource">
<property name="dataSource" ref="dataSource"/>
</bean>
然后从代码注入flyway bean,只需访问migrate(),它将使用脚本来迁移db。
在Liquibase中可以达到同样的效果。
在liquibase的情况下,需要添加的配置是:
<bean id="liquibase" class="liquibase.integration.spring.SpringLiquibase">
<property name="dataSource" ref="myDataSource" />
<property name="changeLog" value="classpath:db-changelog.xml" />
<property name="contexts" value="dev" />
</bean>
答案 2 :(得分:0)
Data Access Object
,你需要Structure Access Object
不存在(可能永远不会)。