Files

23 lines
1.1 KiB
JavaScript
Raw Permalink Normal View History

2026-10-29 11:57:29 +01:00
// 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();
}