1 Commits
0.1.6 ... main

Author SHA1 Message Date
Morten Olsen
e3398e1968 fix: use view recreate 2025-11-04 13:17:44 +01:00

View File

@@ -75,19 +75,22 @@ class ViewsService {
const dbService = this.#services.get(DatabaseService);
const db = await dbService.getInstance();
const subquery = db.raw(query);
await db.schema.createViewOrReplace(name, (view) => {
// view.columns(columns);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
view.as(subquery as any);
await db.transaction(async (trx) => {
await trx.schema.dropViewIfExists(name);
await trx.schema.createViewOrReplace(name, (view) => {
// view.columns(columns);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
view.as(subquery as any);
});
if (description) {
const sql = trx.raw(`COMMENT ON VIEW ?? IS ?;`, [name, description]);
await trx.raw(sql.toQuery());
}
for (const [columnName, info] of Object.entries(columns)) {
const sql = trx.raw(`COMMENT ON COLUMN ??.?? IS ?;`, [name, columnName, info.description || null]);
await trx.raw(sql.toQuery());
}
});
if (description) {
const sql = db.raw(`COMMENT ON VIEW ?? IS ?;`, [name, description]);
await db.raw(sql.toQuery());
}
for (const [columnName, info] of Object.entries(columns)) {
const sql = db.raw(`COMMENT ON COLUMN ??.?? IS ?;`, [name, columnName, info.description || null]);
await db.raw(sql.toQuery());
}
};
public remove = async (name: string) => {