Skip to content

Commit 230ffae

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

File tree

4 files changed

+5452
-5439
lines changed

4 files changed

+5452
-5439
lines changed

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package ch.puzzle.okr.multitenancy;
22

33
import jakarta.persistence.EntityNotFoundException;
4+
import java.util.Map;
45
import org.flywaydb.core.Flyway;
56
import org.springframework.beans.factory.annotation.Value;
67
import org.springframework.stereotype.Component;
@@ -28,6 +29,7 @@ public void migrateFlyway() {
2829
.configure() //
2930
.dataSource(dataSourceConfig.url(), dataSourceConfig.name(), dataSourceConfig.password()) //
3031
.locations(scriptLocations) //
32+
.placeholders(Map.of("tenant", tenantConfig.tenantId()))
3133
.baselineOnMigrate(Boolean.TRUE) //
3234
.schemas(dataSourceConfig.schema()) //
3335
.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)