feat(database): Improve database definition to add sizes

This commit is contained in:
Michel Fedde 2025-06-22 16:43:30 +02:00
parent ec0aa5654c
commit a3c1bae6db
6 changed files with 38 additions and 30 deletions

View file

@ -48,33 +48,21 @@ export class DatabaseUpdater {
const columnsSQL = missingColumns.map((column: DatabaseColumnDefinition) => {
const values = [
"ADD",
column.name,
column.type,
column.primaryKey ? `PRIMARY KEY` : '',
column.notNull ? 'NOT NULL' : '',
column.autoIncrement ? 'AUTOINCREMENT' : '',
this.getSQLColumnDefinition(column)
]
return values.join(' ');
}).join(', ');
const sql = `ALTER TABLE ${definition.name} ${columnsSQL}`;
this.database.execute(sql);
console.log(sql);
}
private createTable(definition: DatabaseDefinition) {
const columnsSQL = definition.columns.map((column: DatabaseColumnDefinition) => {
const values = [
column.name,
column.type,
column.primaryKey ? `PRIMARY KEY` : '',
column.notNull ? 'NOT NULL' : '',
column.autoIncrement ? 'AUTOINCREMENT' : '',
]
return values.join(' ');
}).join(', ');
const columnsSQL = definition.columns.map((column: DatabaseColumnDefinition) =>
this.getSQLColumnDefinition(column)
).join(', ');
const sql = `CREATE TABLE IF NOT EXISTS ${definition.name}
(
@ -82,4 +70,16 @@ export class DatabaseUpdater {
)`;
this.database.execute(sql);
}
private getSQLColumnDefinition(column: DatabaseColumnDefinition) {
const values = [
column.name,
`${column.type}${column.size ? `(${column.size})` : ''}`,
column.primaryKey ? `PRIMARY KEY` : '',
column.notNull ? 'NOT NULL' : '',
column.autoIncrement ? 'AUTOINCREMENT' : '',
];
return values.join(' ')
}
}