🎉 initial commit
This commit is contained in:
21
dbml.ts
Normal file
21
dbml.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
import getfiles from "https://deno.land/x/getfiles@v1.0.0/mod.ts";
|
||||
import { exporter } from "npm:@dbml/core";
|
||||
|
||||
const schema_dir = "./db/";
|
||||
|
||||
export default function (args) {
|
||||
const files = getfiles(schema_dir).filter((x) => x.name?.endsWith(".dbml"))
|
||||
.sort((a, b) => a.name > b.name ? -1 : a.name == b.name ? 0 : 1);
|
||||
|
||||
Deno.mkdirSync("./db/migrations", { recursive: true });
|
||||
for (const file of files) {
|
||||
const dbml = Deno.readTextFileSync(schema_dir + file.name);
|
||||
const sql = exporter.export(dbml, "postgres");
|
||||
Deno.writeTextFileSync(
|
||||
"./db/migrations/" +
|
||||
new Date().toISOString() +
|
||||
"_up_" + file.name.replace(/\.dbml$/, "") + ".sql",
|
||||
sql,
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user