Skip to content

Commit e714648

Browse files
committed
fix(migration): add an if condition for the tenant in migration #1486
1 parent d5adae9 commit e714648

File tree

4 files changed

+5453
-5439
lines changed

4 files changed

+5453
-5439
lines changed

backend/src/main/java/ch/puzzle/okr/multitenancy/FlywayMultitenantMigrationInitializer.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import org.springframework.beans.factory.annotation.Value;
66
import org.springframework.stereotype.Component;
77

8+
import java.util.Map;
9+
810
@Component
911
public class FlywayMultitenantMigrationInitializer {
1012
private final TenantConfigProviderInterface tenantConfigProvider;
@@ -28,6 +30,7 @@ public void migrateFlyway() {
2830
.configure() //
2931
.dataSource(dataSourceConfig.url(), dataSourceConfig.name(), dataSourceConfig.password()) //
3032
.locations(scriptLocations) //
33+
.placeholders(Map.of("tenant", tenantConfig.tenantId()))
3134
.baselineOnMigrate(Boolean.TRUE) //
3235
.schemas(dataSourceConfig.schema()) //
3336
.load();

backend/src/main/resources/db/data-migration-demo/afterMigrate__0_0_clear_data.sql

Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,30 @@
1-
truncate table okr_acme.alignment cascade;
2-
truncate table okr_acme.action cascade;
3-
truncate table okr_acme.check_in cascade;
4-
truncate table okr_acme.key_result cascade;
5-
truncate table okr_acme.completed cascade;
6-
truncate table okr_acme.objective cascade;
7-
truncate table okr_acme.person cascade;
8-
truncate table okr_acme.quarter cascade;
9-
truncate table okr_acme.team cascade;
10-
truncate table okr_acme.person_team cascade;
11-
truncate table okr_acme.unit cascade;
1+
DO $$
2+
BEGIN
3+
IF '${tenant}' = 'pitc' THEN
4+
truncate table okr_pitc.alignment cascade;
5+
truncate table okr_pitc.action cascade;
6+
truncate table okr_pitc.check_in cascade;
7+
truncate table okr_pitc.key_result cascade;
8+
truncate table okr_pitc.completed cascade;
9+
truncate table okr_pitc.objective cascade;
10+
truncate table okr_pitc.person cascade;
11+
truncate table okr_pitc.quarter cascade;
12+
truncate table okr_pitc.team cascade;
13+
truncate table okr_pitc.person_team cascade;
14+
truncate table okr_pitc.unit cascade;
15+
ELSIF '${tenant}' = 'acme' THEN
16+
truncate table okr_acme.alignment cascade;
17+
truncate table okr_acme.action cascade;
18+
truncate table okr_acme.check_in cascade;
19+
truncate table okr_acme.key_result cascade;
20+
truncate table okr_acme.completed cascade;
21+
truncate table okr_acme.objective cascade;
22+
truncate table okr_acme.person cascade;
23+
truncate table okr_acme.quarter cascade;
24+
truncate table okr_acme.team cascade;
25+
truncate table okr_acme.person_team cascade;
26+
truncate table okr_acme.unit cascade;
27+
END IF;
28+
END $$;
29+
1230

13-
truncate table okr_pitc.alignment cascade;
14-
truncate table okr_pitc.action cascade;
15-
truncate table okr_pitc.check_in cascade;
16-
truncate table okr_pitc.key_result cascade;
17-
truncate table okr_pitc.completed cascade;
18-
truncate table okr_pitc.objective cascade;
19-
truncate table okr_pitc.person cascade;
20-
truncate table okr_pitc.quarter cascade;
21-
truncate table okr_pitc.team cascade;
22-
truncate table okr_pitc.person_team cascade;
23-
truncate table okr_pitc.unit cascade;

0 commit comments

Comments
 (0)