n8n
Version:
n8n Workflow Automation Tool
78 lines • 3.63 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.CreateAnalyticsTables1739549398681 = void 0;
const names = {
t: {
analyticsMetadata: 'analytics_metadata',
analyticsRaw: 'analytics_raw',
analyticsByPeriod: 'analytics_by_period',
workflowEntity: 'workflow_entity',
project: 'project',
},
c: {
analyticsMetadata: {
metaId: 'metaId',
projectId: 'projectId',
workflowId: 'workflowId',
},
analyticsRaw: {
metaId: 'metaId',
},
analyticsByPeriod: {
metaId: 'metaId',
type: 'type',
periodUnit: 'periodUnit',
periodStart: 'periodStart',
},
project: {
id: 'id',
},
workflowEntity: {
id: 'id',
},
},
};
class CreateAnalyticsTables1739549398681 {
async up({ schemaBuilder: { createTable, column } }) {
await createTable(names.t.analyticsMetadata)
.withColumns(column(names.c.analyticsMetadata.metaId).int.primary.autoGenerate2, column(names.c.analyticsMetadata.workflowId).varchar(16), column(names.c.analyticsMetadata.projectId).varchar(36), column('workflowName').varchar(128).notNull, column('projectName').varchar(255).notNull)
.withForeignKey(names.c.analyticsMetadata.workflowId, {
tableName: names.t.workflowEntity,
columnName: names.c.workflowEntity.id,
onDelete: 'SET NULL',
})
.withForeignKey(names.c.analyticsMetadata.projectId, {
tableName: names.t.project,
columnName: names.c.project.id,
onDelete: 'SET NULL',
});
const typeComment = '0: time_saved_minutes, 1: runtime_milliseconds, 2: success, 3: failure';
await createTable(names.t.analyticsRaw)
.withColumns(column('id').int.primary.autoGenerate2, column(names.c.analyticsRaw.metaId).int.notNull, column('type').int.notNull.comment(typeComment), column('value').int.notNull, column('timestamp').timestampNoTimezone(0).default('CURRENT_TIMESTAMP').notNull)
.withForeignKey(names.c.analyticsRaw.metaId, {
tableName: names.t.analyticsMetadata,
columnName: names.c.analyticsMetadata.metaId,
onDelete: 'CASCADE',
});
await createTable(names.t.analyticsByPeriod)
.withColumns(column('id').int.primary.autoGenerate2, column(names.c.analyticsByPeriod.metaId).int.notNull, column(names.c.analyticsByPeriod.type).int.notNull.comment(typeComment), column('value').int.notNull, column(names.c.analyticsByPeriod.periodUnit).int.notNull.comment('0: hour, 1: day, 2: week'), column(names.c.analyticsByPeriod.periodStart).timestampNoTimezone(0))
.withForeignKey(names.c.analyticsByPeriod.metaId, {
tableName: names.t.analyticsMetadata,
columnName: names.c.analyticsMetadata.metaId,
onDelete: 'CASCADE',
})
.withIndexOn([
names.c.analyticsByPeriod.periodStart,
names.c.analyticsByPeriod.type,
names.c.analyticsByPeriod.periodUnit,
names.c.analyticsByPeriod.metaId,
], true);
}
async down({ schemaBuilder: { dropTable } }) {
await dropTable(names.t.analyticsRaw);
await dropTable(names.t.analyticsByPeriod);
await dropTable(names.t.analyticsMetadata);
}
}
exports.CreateAnalyticsTables1739549398681 = CreateAnalyticsTables1739549398681;
//# sourceMappingURL=1739549398681-CreateAnalyticsTables.js.map
;