CoolFace
Apppublic

AK-21/Graphite-Industrial-Intelligence

sourceHugging Faceupdated 3mo agoView on Hugging Face
0likes
migrator.js36 linesDownload Raw Back to singlestore-proxy
1import { readMigrationFiles } from "../migrator.js";2import { sql } from "../sql/sql.js";3async function migrate(db, callback, config) {4  const migrations = readMigrationFiles(config);5  const migrationsTable = config.migrationsTable ?? "__drizzle_migrations";6  const migrationTableCreate = sql`7		create table if not exists ${sql.identifier(migrationsTable)} (8			id serial primary key,9			hash text not null,10			created_at bigint11		)12	`;13  await db.execute(migrationTableCreate);14  const dbMigrations = await db.select({15    id: sql.raw("id"),16    hash: sql.raw("hash"),17    created_at: sql.raw("created_at")18  }).from(sql.identifier(migrationsTable).getSQL()).orderBy(19    sql.raw("created_at desc")20  ).limit(1);21  const lastDbMigration = dbMigrations[0];22  const queriesToRun = [];23  for (const migration of migrations) {24    if (!lastDbMigration || Number(lastDbMigration.created_at) < migration.folderMillis) {25      queriesToRun.push(26        ...migration.sql,27        `insert into ${sql.identifier(migrationsTable).value} (\`hash\`, \`created_at\`) values('${migration.hash}', '${migration.folderMillis}')`28      );29    }30  }31  await callback(queriesToRun);32}33export {34  migrate35};36//# sourceMappingURL=migrator.js.map