File size: 1,350 Bytes
2318718
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// 一次性建表脚本:本地用 direct connection 连 Supabase,跑 supabase-schema.sql。
// 运行:node scripts/supabase-init.mjs   (读取 .env 的 SUPABASE_DB_URL)
import { readFileSync } from "node:fs";
import { fileURLToPath } from "node:url";
import { dirname, join } from "node:path";
import pg from "pg";
import "dotenv/config";

const here = dirname(fileURLToPath(import.meta.url));
const sql = readFileSync(join(here, "supabase-schema.sql"), "utf8");

const connectionString = process.env.SUPABASE_DB_URL;
if (!connectionString) {
  console.error("SUPABASE_DB_URL is required in .env");
  process.exit(1);
}

const client = new pg.Client({ connectionString, ssl: { rejectUnauthorized: false } });
await client.connect();
console.log("connected to Supabase, applying schema...");
await client.query(sql);

const tables = await client.query(
  "select table_name from information_schema.tables where table_schema = 'public' order by table_name"
);
console.log("public tables:", tables.rows.map((r) => r.table_name).join(", "));

const rls = await client.query(
  "select relname, relrowsecurity from pg_class where relname in ('app_settings','mailboxes','mails','attachments') order by relname"
);
console.log("RLS:", rls.rows.map((r) => `${r.relname}=${r.relrowsecurity}`).join(", "));

await client.end();
console.log("done");