typecql
Version:
ORM for CQL databases.
39 lines • 1.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.addColumns = addColumns;
const typecql_decorator_functions_1 = require("../../meta/typecql.decorator.functions");
const formatKeysWithSettings_1 = require("../../misc/functions/formating/formatKeysWithSettings");
const settings_1 = require("../../misc/utils/settings");
async function addColumns(tableName, schema, client) {
const columns = Object.entries((0, typecql_decorator_functions_1.getColumns)(tableName))
.filter(([key]) => !key.startsWith('incode'))
.map(([_, item]) => {
if (item['hasCustomName']) {
return {
key: item['field'],
type: item['type'],
isPrimary: item['isPrimary'],
};
}
else {
return {
key: (0, formatKeysWithSettings_1.formatKeysWithSettings)({
key: item['field'],
forQuery: false,
tableName,
connSettings: settings_1.GlobalSettings.get(client),
}),
type: item['type'],
isPrimary: item['isPrimary'],
};
}
});
for (const column of columns) {
if (!schema.find((item) => item.column_name === column.key) &&
column.type &&
!column.isPrimary) {
await client.execute(`alter table "${tableName}" add "${column.key}" ${column.type};`);
}
}
}
//# sourceMappingURL=addColumn.js.map