如何解决使用Flyway部署到多个架构
我对Flyway和管理多个架构有疑问。我有多个架构(schema1,schema2,schema3),它们具有不同的部署计划和不同的文件夹位置(sql / schema1,sql / schema2,sql / schema3),具有不同的代码。
我想Flyway在代码部署之前创建架构,但是如何在单个配置文件中进行设置?我阅读了Flyway文档(https://flywaydb.org/documentation/faq#multiple-schemas),但是示例使用的是单个配置文件吗?还是我需要创建多个配置文件(每个架构一个)?
我可以实现相同设置的逗号分隔架构列表吗?会只在“ sql / Schema1 ”位置中查看“ Schema1 ”吗?我真的不希望Schema1从其他文件夹(例如sql / Schema2等)中提取代码。
谢谢!
解决方法
在具有多个架构的Flyway上使用时,您需要在sql语句中显式说明sql将要更改的架构。您可以通过在每个迁移文件的顶部放置一个ALTER SESSION SET CURRENT_SCHEMA=schema1
或为所有语句加上CREATE TABLE schema1.bananas
前缀来实现此目的。
如果这不切实际,则最好创建多个配置文件,每个配置文件都指定一个模式,并指定一个位置。例如
flyway.schemas=schema1
flyway.locations=filesystem:sql/schema1
然后,您可以对每个配置文件分别运行Flyway,以迁移该特定架构。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。