我正在尝试使用 Flyway,但我有一个不知道如何解决的场景:
当我应用标准脚本时,我必须运行 V1.0__create_table_TAB1.sql
当我将脚本应用于 customer1 时,TAB1 表是一个视图,因此我必须运行 V1.0__create_view_TAB1_to_schema1.sql。
几乎:
└── sql
├── sql_common
│ ├── V0.0 __.... sql
│ └── V1.0__create_table_TAB1.sql
├── sql_customer1
│ └── V1.0__create_view_TAB1_to_schema1.sql
└── sql_customer2
└── V1.0__create_view_TAB1_to_schema2.sql
应始终应用 sql_common 文件夹的脚本,但如果我应用于 customer1 脚本,则不应应用 V1.0(创建表 TAB1)。
取而代之的是应用 V1.0__create_view_TAB1_to_schema1.sql
我该如何处理才能防止这种情况发生?
使用以下结构:
└── sql
├── sql_common
│ └── V0.0 __.... sql
├── sql_regular
│ └── V1.0__create_table_TAB1.sql
├── sql_customer1
│ └── V1.0__create_view_TAB1_to_schema1.sql
└── sql_customer2
└── V1.0__create_view_TAB1_to_schema2.sql
与 Flyway.setLocations() 结合使用。
- 常规的:
flyway.setLocations("filesystem:sql/sql_common",
"filesystem:sql/sql_regular");
- 客户1:
flyway.setLocations("filesystem:sql/sql_common",
"filesystem:sql/sql_customer1");
- 客户2:
flyway.setLocations("filesystem:sql/sql_common",
"filesystem:sql/sql_customer2");
这样,每个案例都会有 1 次 v1.0 迁移。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)