1 line
5.1 KiB
Plaintext
1 line
5.1 KiB
Plaintext
{"version":3,"file":"users.mjs","sources":["../../src/migrations/users.ts"],"sourcesContent":["import fse from 'fs-extra';\nimport { Umzug } from 'umzug';\n\nimport { createStorage } from './storage';\nimport { wrapTransaction } from './common';\nimport { transformLogMessage } from './logger';\n\nimport type { MigrationResolver, UserMigrationProvider } from './common';\nimport type { Database } from '..';\n\n// TODO: check multiple commands in one sql statement\nconst migrationResolver: MigrationResolver = ({ name, path, context }) => {\n const { db } = context;\n\n if (!path) {\n throw new Error(`Migration ${name} has no path`);\n }\n\n // if sql file run with knex raw\n if (path.match(/\\.sql$/)) {\n const sql = fse.readFileSync(path, 'utf8');\n\n return {\n name,\n up: wrapTransaction(db)((knex) => knex.raw(sql)),\n async down() {\n throw new Error('Down migration is not supported for sql files');\n },\n };\n }\n\n // NOTE: we can add some ts register if we want to handle ts migration files at some point\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const migration = require(path);\n return {\n name,\n up: wrapTransaction(db)(migration.up),\n down: wrapTransaction(db)(migration.down),\n };\n};\n\nexport const createUserMigrationProvider = (db: Database): UserMigrationProvider => {\n const dir = db.config.settings.migrations.dir;\n\n fse.ensureDirSync(dir);\n\n const context = { db };\n\n const umzugProvider = new Umzug({\n storage: createStorage({ db, tableName: 'strapi_migrations' }),\n logger: {\n info(message) {\n // NOTE: only log internal migration in debug mode\n db.logger.info(transformLogMessage('info', message));\n },\n warn(message) {\n db.logger.warn(transformLogMessage('warn', message));\n },\n error(message) {\n db.logger.error(transformLogMessage('error', message));\n },\n debug(message) {\n db.logger.debug(transformLogMessage('debug', message));\n },\n },\n context,\n migrations: {\n glob: ['*.{js,sql}', { cwd: dir }],\n resolve: migrationResolver,\n },\n });\n\n return {\n async shouldRun() {\n const pendingMigrations = await umzugProvider.pending();\n return pendingMigrations.length > 0 && db.config?.settings?.runMigrations === true;\n },\n async up() {\n await umzugProvider.up();\n },\n async down() {\n await umzugProvider.down();\n },\n };\n};\n"],"names":["migrationResolver","name","path","context","db","Error","match","sql","fse","readFileSync","up","wrapTransaction","knex","raw","down","migration","require","createUserMigrationProvider","dir","config","settings","migrations","ensureDirSync","umzugProvider","Umzug","storage","createStorage","tableName","logger","info","message","transformLogMessage","warn","error","debug","glob","cwd","resolve","shouldRun","pendingMigrations","pending","length","runMigrations"],"mappings":"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"} |