mirror of
https://github.com/immich-app/immich.git
synced 2025-12-24 05:47:34 -05:00
37 lines
1.0 KiB
TypeScript
37 lines
1.0 KiB
TypeScript
import { Reader } from 'src/sql-tools/types';
|
|
|
|
export const readComments: Reader = async (ctx, db) => {
|
|
const comments = await db
|
|
.selectFrom('pg_description as d')
|
|
.innerJoin('pg_class as c', 'd.objoid', 'c.oid')
|
|
.leftJoin('pg_attribute as a', (join) =>
|
|
join.onRef('a.attrelid', '=', 'c.oid').onRef('a.attnum', '=', 'd.objsubid'),
|
|
)
|
|
.select([
|
|
'c.relname as object_name',
|
|
'c.relkind as object_type',
|
|
'd.description as value',
|
|
'a.attname as column_name',
|
|
])
|
|
.where('d.description', 'is not', null)
|
|
.orderBy('object_type')
|
|
.orderBy('object_name')
|
|
.execute();
|
|
|
|
for (const comment of comments) {
|
|
if (comment.object_type === 'r') {
|
|
const table = ctx.getTableByName(comment.object_name);
|
|
if (!table) {
|
|
continue;
|
|
}
|
|
|
|
if (comment.column_name) {
|
|
const column = table.columns.find(({ name }) => name === comment.column_name);
|
|
if (column) {
|
|
column.comment = comment.value;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|