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
|
|
49
|
-
|
|
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
|
-
|
|
52
|
-
const
|
|
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', [
|
|
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":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAiB,MAAM,sBAAsB,CAAC;AAexE,SAAS,YAAY,CAAC,SAAkB;IACtC,MAAM,UAAU,GAAG,SAAS,EAAE,IAAI,EAAE,CAAC;IACrC,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC;IAClC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;IACjF,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAC5B,MAAM,IAAI,KAAK,CACb,oGAAoG,CACrG,CAAC;AACJ,CAAC;AAED,wFAAwF;AACxF,SAAS,eAAe,CAAC,KAAiB,EAAE,IAAY;IACtD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC3B,OAAO,KAAK,CAAC,SAAS,CACpB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAC,CACrG,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,IAAc,EAAE,KAAa,EAAE,YAAqB;IAC3E,yEAAyE;IACzE,6EAA6E;IAC7E,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC,CAAC;IAC7F,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,KAAK,YAAY,IAAI,CAAC,QAAQ,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC;AAC3G,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"seed-remote.js","sourceRoot":"","sources":["../../src/commands/seed-remote.ts"],"names":[],"mappings":"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"}
|