@rudderhq/db 0.4.6-canary.3 → 0.4.6-canary.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -158,6 +158,167 @@ describe("applyPendingMigrations", () => {
158
158
  await verifySql.end();
159
159
  }
160
160
  }, 20_000);
161
+ it("completes migration 0100 when an older version already created the alias table", async () => {
162
+ const connectionString = await createTempDatabase();
163
+ await applyPendingMigrations(connectionString);
164
+ const sql = postgres(connectionString, { max: 1, onnotice: () => { } });
165
+ try {
166
+ const migration0100Hash = await migrationHash("0100_mean_richard_fisk.sql");
167
+ await sql.unsafe(`
168
+ INSERT INTO "organizations" ("id", "url_key", "name", "issue_prefix")
169
+ VALUES ('00000000-0000-0000-0000-000000000100', 'migration-recovery', 'Migration Recovery', 'MRC')
170
+ `);
171
+ await sql.unsafe(`
172
+ INSERT INTO "organization_issue_prefix_aliases" ("org_id", "prefix")
173
+ VALUES ('00000000-0000-0000-0000-000000000100', 'OLDMRC')
174
+ `);
175
+ await sql.unsafe(`DROP TRIGGER "organizations_route_key_namespace_trigger" ON "organizations"`);
176
+ await sql.unsafe(`DROP TRIGGER "organization_alias_route_key_namespace_trigger" ON "organization_issue_prefix_aliases"`);
177
+ await sql.unsafe(`DROP FUNCTION "enforce_organization_route_key_namespace"()`);
178
+ await sql.unsafe(`DROP FUNCTION "enforce_organization_alias_route_key_namespace"()`);
179
+ await sql.unsafe(`ALTER TABLE "organization_issue_prefix_aliases" DROP CONSTRAINT "organization_issue_prefix_aliases_org_id_organizations_id_fk"`);
180
+ await sql.unsafe(`DROP INDEX "organization_issue_prefix_aliases_prefix_idx"`);
181
+ await sql.unsafe(`DELETE FROM "drizzle"."__drizzle_migrations" WHERE hash = '${migration0100Hash}'`);
182
+ await sql.unsafe(`
183
+ INSERT INTO "drizzle"."__drizzle_migrations" ("hash", "created_at")
184
+ VALUES ('legacy-0100-hash', 1783928221647)
185
+ `);
186
+ }
187
+ finally {
188
+ await sql.end();
189
+ }
190
+ const pendingState = await inspectMigrations(connectionString);
191
+ expect(pendingState).toMatchObject({
192
+ status: "needsMigrations",
193
+ pendingMigrations: ["0100_mean_richard_fisk.sql"],
194
+ reason: "pending-migrations",
195
+ });
196
+ await applyPendingMigrations(connectionString);
197
+ const finalState = await inspectMigrations(connectionString);
198
+ expect(finalState.status).toBe("upToDate");
199
+ const verifySql = postgres(connectionString, { max: 1, onnotice: () => { } });
200
+ try {
201
+ const aliases = await verifySql.unsafe(`SELECT prefix FROM "organization_issue_prefix_aliases" ORDER BY prefix`);
202
+ expect(aliases.map((row) => row.prefix)).toEqual(["OLDMRC"]);
203
+ const constraints = await verifySql.unsafe(`
204
+ SELECT conname
205
+ FROM pg_constraint
206
+ WHERE conname = 'organization_issue_prefix_aliases_org_id_organizations_id_fk'
207
+ `);
208
+ expect(constraints).toHaveLength(1);
209
+ const indexes = await verifySql.unsafe(`
210
+ SELECT indexname
211
+ FROM pg_indexes
212
+ WHERE schemaname = 'public'
213
+ AND indexname = 'organization_issue_prefix_aliases_prefix_idx'
214
+ `);
215
+ expect(indexes).toHaveLength(1);
216
+ const functions = await verifySql.unsafe(`
217
+ SELECT proname
218
+ FROM pg_proc
219
+ WHERE proname IN (
220
+ 'enforce_organization_route_key_namespace',
221
+ 'enforce_organization_alias_route_key_namespace'
222
+ )
223
+ ORDER BY proname
224
+ `);
225
+ expect(functions.map((row) => row.proname)).toEqual([
226
+ "enforce_organization_alias_route_key_namespace",
227
+ "enforce_organization_route_key_namespace",
228
+ ]);
229
+ const triggers = await verifySql.unsafe(`
230
+ SELECT tgname
231
+ FROM pg_trigger
232
+ WHERE NOT tgisinternal
233
+ AND tgname IN (
234
+ 'organizations_route_key_namespace_trigger',
235
+ 'organization_alias_route_key_namespace_trigger'
236
+ )
237
+ ORDER BY tgname
238
+ `);
239
+ expect(triggers.map((row) => row.tgname)).toEqual([
240
+ "organization_alias_route_key_namespace_trigger",
241
+ "organizations_route_key_namespace_trigger",
242
+ ]);
243
+ }
244
+ finally {
245
+ await verifySql.end();
246
+ }
247
+ }, 20_000);
248
+ it("rolls back migration 0100 when a legacy alias conflicts with another organization route", async () => {
249
+ const connectionString = await createTempDatabase();
250
+ await applyPendingMigrations(connectionString);
251
+ const sql = postgres(connectionString, { max: 1, onnotice: () => { } });
252
+ const migration0100Hash = await migrationHash("0100_mean_richard_fisk.sql");
253
+ try {
254
+ await sql.unsafe(`DROP TRIGGER "organizations_route_key_namespace_trigger" ON "organizations"`);
255
+ await sql.unsafe(`DROP TRIGGER "organization_alias_route_key_namespace_trigger" ON "organization_issue_prefix_aliases"`);
256
+ await sql.unsafe(`DROP FUNCTION "enforce_organization_route_key_namespace"()`);
257
+ await sql.unsafe(`DROP FUNCTION "enforce_organization_alias_route_key_namespace"()`);
258
+ await sql.unsafe(`ALTER TABLE "organization_issue_prefix_aliases" DROP CONSTRAINT "organization_issue_prefix_aliases_org_id_organizations_id_fk"`);
259
+ await sql.unsafe(`DROP INDEX "organization_issue_prefix_aliases_prefix_idx"`);
260
+ await sql.unsafe(`DELETE FROM "drizzle"."__drizzle_migrations" WHERE hash = '${migration0100Hash}'`);
261
+ await sql.unsafe(`
262
+ INSERT INTO "drizzle"."__drizzle_migrations" ("hash", "created_at")
263
+ VALUES ('legacy-conflicting-0100-hash', 1783928221647)
264
+ `);
265
+ await sql.unsafe(`
266
+ INSERT INTO "organizations" ("id", "url_key", "name", "issue_prefix")
267
+ VALUES
268
+ ('00000000-0000-0000-0000-000000000101', 'legacy-owner', 'Legacy Owner', 'LOWN'),
269
+ ('00000000-0000-0000-0000-000000000102', 'claimed-route', 'Claimed Route', 'CRTE')
270
+ `);
271
+ await sql.unsafe(`
272
+ INSERT INTO "organization_issue_prefix_aliases" ("org_id", "prefix")
273
+ VALUES ('00000000-0000-0000-0000-000000000101', 'CLAIMED-ROUTE')
274
+ `);
275
+ }
276
+ finally {
277
+ await sql.end();
278
+ }
279
+ await expect(applyPendingMigrations(connectionString)).rejects.toThrow("Existing organization route identities and historical Issue Keys conflict case-insensitively");
280
+ const pendingState = await inspectMigrations(connectionString);
281
+ expect(pendingState).toMatchObject({
282
+ status: "needsMigrations",
283
+ pendingMigrations: ["0100_mean_richard_fisk.sql"],
284
+ reason: "pending-migrations",
285
+ });
286
+ const verifySql = postgres(connectionString, { max: 1, onnotice: () => { } });
287
+ try {
288
+ const migrationEntries = await verifySql.unsafe(`
289
+ SELECT count(*)::int AS count
290
+ FROM "drizzle"."__drizzle_migrations"
291
+ WHERE hash = '${migration0100Hash}'
292
+ `);
293
+ expect(migrationEntries[0]?.count).toBe(0);
294
+ const aliases = await verifySql.unsafe(`SELECT prefix FROM "organization_issue_prefix_aliases" ORDER BY prefix`);
295
+ expect(aliases.map((row) => row.prefix)).toEqual(["CLAIMED-ROUTE"]);
296
+ const restoredObjects = await verifySql.unsafe(`
297
+ SELECT (
298
+ (SELECT count(*) FROM pg_constraint
299
+ WHERE conname = 'organization_issue_prefix_aliases_org_id_organizations_id_fk')
300
+ + (SELECT count(*) FROM pg_indexes
301
+ WHERE schemaname = 'public'
302
+ AND indexname = 'organization_issue_prefix_aliases_prefix_idx')
303
+ + (SELECT count(*) FROM pg_proc
304
+ WHERE proname IN (
305
+ 'enforce_organization_route_key_namespace',
306
+ 'enforce_organization_alias_route_key_namespace'
307
+ ))
308
+ + (SELECT count(*) FROM pg_trigger
309
+ WHERE NOT tgisinternal
310
+ AND tgname IN (
311
+ 'organizations_route_key_namespace_trigger',
312
+ 'organization_alias_route_key_namespace_trigger'
313
+ ))
314
+ )::int AS count
315
+ `);
316
+ expect(restoredObjects[0]?.count).toBe(0);
317
+ }
318
+ finally {
319
+ await verifySql.end();
320
+ }
321
+ }, 20_000);
161
322
  it("replays migration 0044 safely when its schema changes already exist", async () => {
162
323
  const connectionString = await createTempDatabase();
163
324
  await applyPendingMigrations(connectionString);
@@ -1 +1 @@
1
- {"version":3,"file":"client.test.js","sourceRoot":"","sources":["../src/client.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.test.js","sourceRoot":"","sources":["../src/client.test.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,27 @@
1
- CREATE TABLE "organization_issue_prefix_aliases" (
1
+ CREATE TABLE IF NOT EXISTS "organization_issue_prefix_aliases" (
2
2
  "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
3
  "org_id" uuid NOT NULL,
4
4
  "prefix" text NOT NULL,
5
5
  "created_at" timestamp with time zone DEFAULT now() NOT NULL
6
6
  );
7
7
  --> statement-breakpoint
8
- ALTER TABLE "organization_issue_prefix_aliases" ADD CONSTRAINT "organization_issue_prefix_aliases_org_id_organizations_id_fk" FOREIGN KEY ("org_id") REFERENCES "public"."organizations"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
9
- CREATE UNIQUE INDEX "organization_issue_prefix_aliases_prefix_idx" ON "organization_issue_prefix_aliases" USING btree ("prefix");
8
+ DO $$
9
+ BEGIN
10
+ IF NOT EXISTS (
11
+ SELECT 1
12
+ FROM pg_constraint
13
+ WHERE conname = 'organization_issue_prefix_aliases_org_id_organizations_id_fk'
14
+ AND conrelid = 'organization_issue_prefix_aliases'::regclass
15
+ ) THEN
16
+ ALTER TABLE "organization_issue_prefix_aliases"
17
+ ADD CONSTRAINT "organization_issue_prefix_aliases_org_id_organizations_id_fk"
18
+ FOREIGN KEY ("org_id") REFERENCES "public"."organizations"("id")
19
+ ON DELETE cascade ON UPDATE no action;
20
+ END IF;
21
+ END
22
+ $$;
23
+ --> statement-breakpoint
24
+ CREATE UNIQUE INDEX IF NOT EXISTS "organization_issue_prefix_aliases_prefix_idx" ON "organization_issue_prefix_aliases" USING btree ("prefix");
10
25
  --> statement-breakpoint
11
26
  SELECT pg_advisory_xact_lock(hashtext('rudder:organization-issue-prefix'));
12
27
  --> statement-breakpoint
@@ -20,16 +35,18 @@ BEGIN
20
35
  SELECT "id" AS org_id, "url_key" AS route_key FROM "organizations"
21
36
  UNION ALL
22
37
  SELECT "id" AS org_id, "issue_prefix" AS route_key FROM "organizations"
38
+ UNION ALL
39
+ SELECT "org_id", "prefix" AS route_key FROM "organization_issue_prefix_aliases"
23
40
  ) existing_route_keys
24
41
  GROUP BY lower(route_key)
25
42
  HAVING count(DISTINCT org_id) > 1
26
43
  ) THEN
27
- RAISE EXCEPTION 'Existing organization route identities conflict case-insensitively. Resolve the conflicting URL and Issue Keys before applying migration 0100.';
44
+ RAISE EXCEPTION 'Existing organization route identities and historical Issue Keys conflict case-insensitively. Resolve the conflicting keys before applying migration 0100.';
28
45
  END IF;
29
46
  END
30
47
  $$;
31
48
  --> statement-breakpoint
32
- CREATE FUNCTION "enforce_organization_route_key_namespace"() RETURNS trigger
49
+ CREATE OR REPLACE FUNCTION "enforce_organization_route_key_namespace"() RETURNS trigger
33
50
  LANGUAGE plpgsql
34
51
  AS $$
35
52
  BEGIN
@@ -54,7 +71,7 @@ BEGIN
54
71
  END
55
72
  $$;
56
73
  --> statement-breakpoint
57
- CREATE FUNCTION "enforce_organization_alias_route_key_namespace"() RETURNS trigger
74
+ CREATE OR REPLACE FUNCTION "enforce_organization_alias_route_key_namespace"() RETURNS trigger
58
75
  LANGUAGE plpgsql
59
76
  AS $$
60
77
  BEGIN
@@ -80,10 +97,14 @@ BEGIN
80
97
  END
81
98
  $$;
82
99
  --> statement-breakpoint
100
+ DROP TRIGGER IF EXISTS "organizations_route_key_namespace_trigger" ON "organizations";
101
+ --> statement-breakpoint
83
102
  CREATE TRIGGER "organizations_route_key_namespace_trigger"
84
103
  BEFORE INSERT OR UPDATE OF "url_key", "issue_prefix" ON "organizations"
85
104
  FOR EACH ROW EXECUTE FUNCTION "enforce_organization_route_key_namespace"();
86
105
  --> statement-breakpoint
106
+ DROP TRIGGER IF EXISTS "organization_alias_route_key_namespace_trigger" ON "organization_issue_prefix_aliases";
107
+ --> statement-breakpoint
87
108
  CREATE TRIGGER "organization_alias_route_key_namespace_trigger"
88
109
  BEFORE INSERT OR UPDATE OF "org_id", "prefix" ON "organization_issue_prefix_aliases"
89
110
  FOR EACH ROW EXECUTE FUNCTION "enforce_organization_alias_route_key_namespace"();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rudderhq/db",
3
- "version": "0.4.6-canary.3",
3
+ "version": "0.4.6-canary.4",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "homepage": "https://github.com/Undertone0809/rudder",
6
6
  "bugs": {
@@ -51,7 +51,7 @@
51
51
  "seed": "tsx src/seed.ts"
52
52
  },
53
53
  "dependencies": {
54
- "@rudderhq/shared": "0.4.6-canary.3",
54
+ "@rudderhq/shared": "0.4.6-canary.4",
55
55
  "drizzle-orm": "^0.45.2",
56
56
  "embedded-postgres": "18.1.0-beta.16",
57
57
  "postgres": "^3.4.8"