fix(discord-gateway): bypass Drizzle PG15 schema creation restrictions

This commit is contained in:
MythEclipse
2026-06-11 03:53:48 +07:00
parent 378f1b6bdc
commit 2e5371f3ee
@@ -137,10 +137,26 @@ export async function runMigrations(): Promise<void> {
// new (pending) migrations — it is idempotent after that. // new (pending) migrations — it is idempotent after that.
await seedDrizzleHistory(client); await seedDrizzleHistory(client);
await migratePostgres(db, { // Monkey-patch client.query to intercept and ignore Drizzle's
migrationsFolder: "./drizzle/migrations", // hardcoded schema creation, which fails in PG15+ restricted public schemas.
migrationsSchema: "public", const originalQuery = client.query;
}); client.query = (async (...args: any[]) => {
const queryText = args[0];
const text = typeof queryText === "string" ? queryText : queryText?.text;
if (text && typeof text === "string" && text.includes('CREATE SCHEMA IF NOT EXISTS "public"')) {
return { rows: [], command: "CREATE", rowCount: 0, oid: 0, fields: [] };
}
return Function.prototype.apply.call(originalQuery, client, args);
}) as typeof client.query;
try {
await migratePostgres(db, {
migrationsFolder: "./drizzle/migrations",
migrationsSchema: "public",
});
} finally {
client.query = originalQuery;
}
} finally { } finally {
await client.query("SELECT pg_advisory_unlock($1, $2)", [ await client.query("SELECT pg_advisory_unlock($1, $2)", [
MIGRATION_LOCK_KEY_1, MIGRATION_LOCK_KEY_1,