Versie 0.2.0
This commit is contained in:
commit
e77d8fd373
495 files changed
+81026
No files matched your search
@@ -0,0 +1,23 @@
|
||||
// Generated, do not edit. sha256:d225f580a4545f4be7759feb5bf7808d1ded43a0baf1cbde8115e6901c6a4521
|
||||
export function schemaVorm(db) {
|
||||
const tabellen = db.prepare(
|
||||
`SELECT name FROM sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%' ORDER BY name`
|
||||
).all().map(r => r.name);
|
||||
|
||||
const uit = [];
|
||||
for (const t of tabellen) {
|
||||
for (const k of db.prepare(`PRAGMA table_info(${t})`).all()) {
|
||||
uit.push(`${t}.${k.name}: ${k.type}${k.notnull ? ' NOT NULL' : ''}${k.pk ? ` PK${k.pk}` : ''}`
|
||||
+ `${k.dflt_value == null ? '' : ` DEFAULT ${k.dflt_value}`}`);
|
||||
}
|
||||
for (const fk of db.prepare(`PRAGMA foreign_key_list(${t})`).all()) {
|
||||
uit.push(`${t}.${fk.from} -> ${fk.table}.${fk.to} ON DELETE ${fk.on_delete}`);
|
||||
}
|
||||
for (const ix of db.prepare(`PRAGMA index_list(${t})`).all()) {
|
||||
const kolommen = db.prepare(`PRAGMA index_info(${ix.name})`).all().map(k => k.name).join(',');
|
||||
uit.push(`${ix.unique ? 'UNIQUE ' : ''}INDEX ${ix.name} ON ${t}(${kolommen})`
|
||||
+ `${ix.partial ? ' PARTIAL' : ''}${ix.origin === 'u' ? ' [uit UNIQUE]' : ''}`);
|
||||
}
|
||||
}
|
||||
return uit.sort();
|
||||
}
|
||||
Reference in new issue
Block a user