supabee 0.5.1 → 0.5.2

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.
@@ -24,5 +24,9 @@ export type SeedRemoteOptions = {
24
24
  * pg_dump/pg_restore load a data dump. This stops application triggers (e.g. an
25
25
  * auth.users insert auto-creating a profiles row) from firing and makes seed
26
26
  * file ordering irrelevant. Pass keepTriggers to leave triggers/FK checks live.
27
+ *
28
+ * Both GUCs are applied as in-session `SET` statements inside each file's
29
+ * transaction rather than via PGOPTIONS, because Supabase's connection pooler
30
+ * strips connection startup options.
27
31
  */
28
32
  export declare function runSeedRemoteCommand(options?: SeedRemoteOptions): Promise<void>;
@@ -38,6 +38,10 @@ function printResumeHint(file, dbUrl, keepTriggers) {
38
38
  * pg_dump/pg_restore load a data dump. This stops application triggers (e.g. an
39
39
  * auth.users insert auto-creating a profiles row) from firing and makes seed
40
40
  * file ordering irrelevant. Pass keepTriggers to leave triggers/FK checks live.
41
+ *
42
+ * Both GUCs are applied as in-session `SET` statements inside each file's
43
+ * transaction rather than via PGOPTIONS, because Supabase's connection pooler
44
+ * strips connection startup options.
41
45
  */
42
46
  export async function runSeedRemoteCommand(options = {}) {
43
47
  const dbUrl = resolveDbUrl(options.dbUrl);
@@ -45,11 +49,17 @@ export async function runSeedRemoteCommand(options = {}) {
45
49
  configPath: options.configPath,
46
50
  supabaseDir: options.supabaseDir,
47
51
  });
48
- // Session GUCs applied to every file's psql connection.
49
- const pgOptions = ['-c statement_timeout=0'];
52
+ // Session GUCs are applied as in-session SET commands, NOT via PGOPTIONS /
53
+ // connection startup options — Supabase's connection pooler (supavisor/pgbouncer)
54
+ // strips startup options, so PGOPTIONS silently has no effect there. Sent as
55
+ // real SQL inside the same --single-transaction as the file, the SETs reach the
56
+ // backend and take effect for that file: statement_timeout=0 so long inserts are
57
+ // not cut off, and (by default) session_replication_role=replica so triggers and
58
+ // FK enforcement are disabled during the load, like pg_dump/pg_restore.
59
+ const sessionSetup = ['SET statement_timeout = 0;'];
50
60
  if (!options.keepTriggers)
51
- pgOptions.push('-c session_replication_role=replica');
52
- const seedEnv = { PGOPTIONS: pgOptions.join(' ') };
61
+ sessionSetup.push('SET session_replication_role = replica;');
62
+ const sessionSetupSql = sessionSetup.join(' ');
53
63
  console.log(sectionWithNote(title('Seed remote'), 'Applies split seed files directly via psql. Each file is atomic, so a failure can be resumed with --from.'));
54
64
  if (patterns.length === 0) {
55
65
  throw new Error('No [db.seed].sql_paths configured in supabase/config.toml — nothing to seed.');
@@ -83,7 +93,17 @@ export async function runSeedRemoteCommand(options = {}) {
83
93
  const file = queue[i];
84
94
  console.log(info(`[${i + 1}/${queue.length}] Seeding ${file.relPath}...`));
85
95
  try {
86
- await runCommand('psql', [dbUrl, '-X', '--single-transaction', '-v', 'ON_ERROR_STOP=1', '-f', file.absPath], { env: seedEnv });
96
+ await runCommand('psql', [
97
+ dbUrl,
98
+ '-X',
99
+ '--single-transaction',
100
+ '-v',
101
+ 'ON_ERROR_STOP=1',
102
+ '-c',
103
+ sessionSetupSql,
104
+ '-f',
105
+ file.absPath,
106
+ ]);
87
107
  }
88
108
  catch (error) {
89
109
  console.log('');
@@ -1 +1 @@
1
- {"version":3,"file":"seed-remote.js","sourceRoot":"","sources":["../../src/commands/seed-remote.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seed-remote.js","sourceRoot":"","sources":["../../src/commands/seed-remote.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "supabee",
3
- "version": "0.5.1",
3
+ "version": "0.5.2",
4
4
  "description": "CLI tools for local Supabase schema/data workflows",
5
5
  "license": "MIT",
6
6
  "author": "Kai Ho Chak",