答案 0 :(得分:5)
liquibase中有一个用于管理程序的内置createProcedure标记。最好的方法通常是将or或tags与runOnChange结合使用,这样liquibase只会在您更新定义时更新您的过程。这样,您可以在更改日志xml文件之间进行差异,并查看过程如何更改。
答案 1 :(得分:2)
我遇到了尝试使用sql标签存储过程,触发器和函数的问题,但在我的情况下,这些问题可能是MySQL JDBC驱动程序的问题,而不是Liquibase本身。我已经解决的做法是使用nathan建议的sqlFile重构,然后控制与更改日志在同一项目中的SP /触发器/功能代码,并在源代码系统中进行版本控制。这使您可以管理SP /任何代码,就像它是真正的源代码一样。
在包含sqlFile重构的changeSet中设置runOnChange =“true”是必不可少的。正是这个开关(谢谢你,Nathan)实现了对程序数据库代码的真正源代码控制。
答案 2 :(得分:1)
虽然我没有将liquibase用于存储过程,但我对Liquibase有一些经验,可以进行更多通用操作。
可以编写自定义sql,嵌入在xml文件中或从外部文件引用。