UNPKG

@grouparoo/core

Version:
63 lines (62 loc) 2.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const migration_1 = require("../utils/migration"); const tables = { apiKeys: ["apiKey"], apps: [], destinationGroupMemberships: ["destinationId", "groupId"], destinations: ["appId", "groupId"], eventData: ["eventId"], events: ["producerId", "profileId"], exports: ["profileId", "destinationId"], files: [], groupMembers: ["profileId", "groupId"], groupRules: ["groupId", "propertyId"], groups: [], imports: ["creatorId", "profileId"], logs: ["ownerId"], mappings: ["ownerId", "propertyId"], notifications: [], options: ["ownerId"], permissions: ["ownerId"], profileProperties: ["profileId", "propertyId"], profiles: [], properties: ["sourceId"], propertyFilters: ["propertyId"], runs: ["creatorId", "destinationId"], schedules: ["sourceId"], sessions: [], settings: [], setupSteps: [], sources: ["appId"], teamMembers: ["teamId"], teams: [], }; const runMigration = async ({ maxIdLength, queryInterface, DataTypes, }) => { const dialect = migration_1.MigrationUtils.getDialect(queryInterface); const changeColumn = async (tableName, columnName) => { if (dialect !== "sqlite") { const query = `ALTER TABLE "${tableName}" ALTER COLUMN "${columnName}" SET DATA TYPE varchar(${maxIdLength}); `; await queryInterface.sequelize.query(query); } else { await queryInterface.changeColumn(tableName, columnName, { type: DataTypes.STRING(191), }); } }; for (const [tableName, columnNames] of Object.entries(tables)) { await changeColumn(tableName, "id"); for (const columnName of columnNames) { await changeColumn(tableName, columnName); } } }; exports.default = { up: async (queryInterface, DataTypes) => { await runMigration({ maxIdLength: 191, queryInterface, DataTypes }); }, down: async (queryInterface, DataTypes) => { await runMigration({ maxIdLength: 40, queryInterface, DataTypes }); }, };