【问题标题】:Can Flyway execute SQL scripts that are not treated as migrations?Flyway 可以执行不被视为迁移的 SQL 脚本吗?
【发布时间】:2013-03-24 07:51:01
【问题描述】:
我们想使用 Flyway 进行数据库迁移。除了我们的迁移脚本之外,我们还需要执行一些不应被视为迁移的脚本(并且不需要在 schema_version 表中进行跟踪)。一个示例是执行包含仅与开发环境相关的配置数据或测试数据的脚本。我们仍然希望使用 flyway-maven-plugin 来执行这些 SQL 脚本,而不是在我的 flyway-maven-plugin 之前/之后运行的其他 maven 插件。
有人问过关于pre and post migration scripts for flyway 的类似问题。如果实现了这个功能,它也可以满足我们的需求。
【问题讨论】:
标签:
maven
flyway
sql-scripts
【解决方案1】:
借助 Flyway 对从多个位置加载脚本的支持,您可以进行配置,使其仅在某些环境中加载一组参考或测试数据,而在其他环境中不加载。
您必须为这些脚本提供一个版本,但这应该不是太大的问题,因为它们无论如何都依赖于存在的底层数据库结构。
【解决方案2】:
对于必须在数据库中的系统数据,例如查找表,这些可以由正常的迁移脚本处理。原因是它们与数据库结构和应用程序代码齐头并进。您可以使用命名约定来轻松区分系统数据脚本和 DDL 脚本。
对于测试数据,您可以考虑使用flyway-test-extentions。