当前位置: 首页 > 知识库问答 >
问题:

使用Flyway部署到多个模式

翟展
2023-03-14

我有一个关于Flyway和管理多个模式的问题。我有多个模式(schema1、schema2、schema3),它们具有不同的部署计划和不同的文件夹位置(sql/schema1、sql/schema 2、sql/sschema3、sql/schma3)以及不同的代码

我想在代码部署之前通过 Flyway 创建架构,但我如何在单个配置文件中进行设置?我阅读了 Flyway 文档(https://flywaydb.org/documentation/faq#multiple-schemas),但该示例是否使用单个配置文件?或者我需要创建多个配置文件(每个架构一个)?

我可以实现相同的设置逗号分隔模式列表吗?“Schema1”只会查看“sql/Schema1”位置吗?我真的不希望Schema1从不同的文件夹(即sql/Schema2等)中提取代码。

提前谢谢!

共有1个答案

谷弘致
2023-03-14

将 Flyway 与多个架构一起使用时,您需要在 sql 语句中明确说明 sql 将更改哪个架构。为此,您可以将 ALTER 会话集 CURRENT_SCHEMA=schema1 放在每个迁移文件的顶部,或者为所有语句(如创建表架构 1.bananas)添加前缀。如果这不切实际,最好创建多个配置文件,每个配置文件都指定了单个架构,并指定了一个位置。例如

flyway.schemas=schema1
flyway.locations=filesystem:sql/schema1

然后,您可以单独对每个配置文件运行Flyway以迁移该特定模式。

 类似资料:
  • 我已经仔细阅读了飞行路线文档,但我不清楚我想要的场景是否可行。我需要在同一数据库中修补许多相同的模式,但在编写sql脚本时,我不知道所有的模式名称。 我知道架构参数,但常见问题解答中提到的2种可能的策略不适用于我的方案。 这个场景类似于大学为学生提供模式: 我想为对象提供没有模式前缀的sql脚本 每个架构都应该有自己的schema_version表 在飞行方式:迁移模式参数中定义的每个模式都应该单

  • 我有一个。NET解决方案,其中包含多个项目。我想在Azure运营模式中设置部署管道,但不确定如何做到这一点。我想有1个管道,部署以下项目: 主web应用程序- 我该如何设置?我选择了默认的“Azure应用程序服务部署”模板,但在部署任务中,我无法选择要部署的项目。包引用了,但这是一个zip文件,其中包含我的两个web项目的工件(此处缺少数据库DACPAC)。

  • 我正在尝试对具有相同生命周期的许多不同的Postgresql架构进行迁移。根据飞行路线文档,这种情况应该有效。我的 ANT 脚本中有以下内容:当我运行迁移时,更改仅应用于第一个(默认)架构。 是我做错了什么,还是flyway.schemas属性只对clean有效? 谢谢

  • 我想部署两个应用程序foo。war和条形图。war到同一个Tomcat实例。他们是否可以侦听不同端口上的连接,例如,foo侦听端口81,bar侦听端口82?如果是,我如何配置?我意识到应用程序没有必要监听不同的端口,但这正是我想要实现的。 此外,如果我将重命名为,使其在根上下文中运行,那么对该Tomcat实例的所有请求都将由foo应用程序处理,因此bar必须部署到单独的Tomcat实例,这是否正确

  • 问题内容: 我想在同一主机中部署两个不同的django应用程序:第一个将对应于URL / site1,第二个将对应于URL / site2。这是我的配置: 这也是这两个应用程序的wsgi.py文件 现在,这是我的问题。当我转到服务器时,假设http://app1.sites.gr/site1有时加载了site1,而有时加载了site2!访问http://app1.sites.gr/site2时也是

  • 我对Flyway完全陌生,但我正在尝试使用https://github.com/flyway/flyway-docker描述的docker-compose flyway mysql安排来迁移许多相同的测试数据库 据我所知,< code>migrate命令可以在它的< code>-schemas参数中接受多个模式,但是它似乎只将实际的SQL迁移应用于列表中的第一个模式。 例如,当我使用< code>