teo*_*ost 3 oracle database-migration flyway
我正在尝试使用 Flyway,但我有一个不知道如何解决的场景:
\n\n当我应用 STANDARD 脚本时,我必须运行 V1.0__create_table_TAB1.sql\n当我将脚本应用于 customer1 时,TAB1 表是一个视图,因此我必须运行 V1.0__create_view_TAB1_to_schema1.sql。
\n\n几乎:
\n\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 sql\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 sql_common\n \xc2\xa0\xc2\xa0\xc2\xa0 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 V0.0 __.... sql\n \xc2\xa0\xc2\xa0\xc2\xa0 \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 V1.0__create_table_TAB1.sql\n \xc2\xa0\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 sql_customer1\n \xc2\xa0\xc2\xa0\xc2\xa0 \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 V1.0__create_view_TAB1_to_schema1.sql\n \xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 sql_customer2\n \xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 V1.0__create_view_TAB1_to_schema2.sql\nRun Code Online (Sandbox Code Playgroud)\n\n应始终应用 sql_common 文件夹的脚本,但如果我应用于 customer1 脚本,则不应应用 V1.0(创建表 TAB1)。\n取而代之的是应用 V1.0__create_view_TAB1_to_schema1.sql
\n\n我该如何处理才能防止这种情况发生?
\n使用以下结构:
\n\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 sql\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 sql_common\n \xc2\xa0\xc2\xa0\xc2\xa0 \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 V0.0 __.... sql\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 sql_regular\n \xc2\xa0\xc2\xa0\xc2\xa0 \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 V1.0__create_table_TAB1.sql\n \xc2\xa0\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 sql_customer1\n \xc2\xa0\xc2\xa0\xc2\xa0 \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 V1.0__create_view_TAB1_to_schema1.sql\n \xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 sql_customer2\n \xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 V1.0__create_view_TAB1_to_schema2.sql\nRun Code Online (Sandbox Code Playgroud)\n\n与 Flyway.setLocations() 结合使用。
\n\nflyway.setLocations("filesystem:sql/sql_common",\n"filesystem:sql/sql_regular"); flyway.setLocations("filesystem:sql/sql_common",\n"filesystem:sql/sql_customer1"); flyway.setLocations("filesystem:sql/sql_common",\n"filesystem:sql/sql_customer2");这样,每个案例都会有 1 次 v1.0 迁移。
\n