Files
payload/packages/db-postgres/src/reference.ts
2023-08-03 13:29:57 -04:00

44 lines
1.3 KiB
TypeScript

// type GenerateMigration = (before: DrizzleSnapshotJSON, after: DrizzleSnapshotJSON) => string[]
// type GenerateDrizzleJSON = (schema: DrizzleSchemaExports) => DrizzleSnapshotJSON
// type PushDiff = (schema: DrizzleSchemaExports) => Promise<{ warnings: string[], apply: () => Promise<void> }>
// drizzle-kit@utils
import { generateDrizzleJson, generateMigration, pushSchema } from 'drizzle-kit/utils';
import { drizzle } from 'drizzle-orm/node-postgres';
import { Pool } from 'pg';
async function generateUsage() {
const schema = await import('./data/users');
const schemaAfter = await import('./data/users-after');
const drizzleJsonBefore = generateDrizzleJson(schema);
const drizzleJsonAfter = generateDrizzleJson(schemaAfter);
const sqlStatements = await generateMigration(drizzleJsonBefore, drizzleJsonAfter);
console.log(sqlStatements);
}
async function pushUsage() {
const schemaAfter = await import('./data/users-after');
const db = drizzle(
new Pool({ connectionString: '' }),
);
const response = await pushSchema(schemaAfter, db);
console.log('\n');
console.log('hasDataLoss: ', response.hasDataLoss);
console.log('warnings: ', response.warnings);
console.log('statements: ', response.statementsToExecute);
await response.apply();
process.exit(0);
}