我从今天开始为一个项目评估liquibase。
有没有人用它来创建过程、函数,基本上所有的 plsql 东西?
如果没有,是否可以在 xml 文件中编写嵌入式 sql 代码?
提前致谢。
liquibase中有一个内置的createProcedure标签用于管理过程。最好的方法通常是将 or 标记与 runOnChange 结合起来,这样 liquibase 才会在您更新定义时更新您的过程。这样,您可以随着时间的推移在您的 changelog xml 文件之间进行差异,并查看过程是如何变化的。
我在尝试将 sql 标记用于存储过程、触发器和函数时遇到了问题,但在我的情况下,这些问题可证明是 MySQL JDBC 驱动程序的问题,而不是 Liquibase 本身的问题。我习惯的做法是按照 Nathan 的建议使用 sqlFile 重构,然后控制与变更日志相同的项目中的 SP/触发器/函数代码,并在源代码系统中对其进行版本控制。这使您可以像管理真正的源代码一样管理 SP/任何代码。
在包含 sqlFile 重构的 changeSet 中设置 runOnChange="true" 是必不可少的。正是这个开关(谢谢你,Nathan)实现了程序数据库代码的真正源代码控制。
虽然我没有将 liquibase 用于存储过程,但我有一些使用 Liquibase 进行更通用操作的经验。
可以编写自定义 sql,嵌入在 xml 文件中或从外部文件引用。