{"version":3,"file":"5.0.0-03-locale.mjs","sources":["../../../src/migrations/internal-migrations/5.0.0-03-locale.ts"],"sourcesContent":["import type { Knex } from 'knex';\n\nimport type { Migration } from '../common';\n\n/**\n * In v4, content types with disabled i18n did not have any locale column.\n * In v5, we need to add a `locale` column to all content types.\n * Other downstream migrations will make use of this column.\n *\n * This function creates the `locale` column if it doesn't exist.\n */\nconst createLocaleColumn = async (db: Knex, tableName: string) => {\n await db.schema.alterTable(tableName, (table) => {\n table.string('locale');\n });\n};\n\nexport const createdLocale: Migration = {\n name: '5.0.0-03-created-locale',\n async up(knex, db) {\n for (const meta of db.metadata.values()) {\n const hasTable = await knex.schema.hasTable(meta.tableName);\n\n if (!hasTable) {\n continue;\n }\n\n // Ignore non-content types\n const uid = meta.uid;\n const model = strapi.getModel(uid);\n if (!model) {\n continue;\n }\n\n // Create locale column if it doesn't exist\n const hasLocaleColumn = await knex.schema.hasColumn(meta.tableName, 'locale');\n\n if (meta.attributes.locale && !hasLocaleColumn) {\n await createLocaleColumn(knex, meta.tableName);\n }\n }\n },\n async down() {\n throw new Error('not implemented');\n },\n};\n"],"names":["createLocaleColumn","db","tableName","schema","alterTable","table","string","createdLocale","name","up","knex","meta","metadata","values","hasTable","uid","model","strapi","getModel","hasLocaleColumn","hasColumn","attributes","locale","down","Error"],"mappings":"AAIA;;;;;;IAOA,MAAMA,kBAAAA,GAAqB,OAAOC,EAAAA,EAAUC,SAAAA,GAAAA;AAC1C,IAAA,MAAMD,GAAGE,MAAM,CAACC,UAAU,CAACF,WAAW,CAACG,KAAAA,GAAAA;AACrCA,QAAAA,KAAAA,CAAMC,MAAM,CAAC,QAAA,CAAA;AACf,IAAA,CAAA,CAAA;AACF,CAAA;MAEaC,aAAAA,GAA2B;IACtCC,IAAAA,EAAM,yBAAA;IACN,MAAMC,EAAAA,CAAAA,CAAGC,IAAI,EAAET,EAAE,EAAA;AACf,QAAA,KAAK,MAAMU,IAAAA,IAAQV,EAAAA,CAAGW,QAAQ,CAACC,MAAM,EAAA,CAAI;YACvC,MAAMC,QAAAA,GAAW,MAAMJ,IAAAA,CAAKP,MAAM,CAACW,QAAQ,CAACH,KAAKT,SAAS,CAAA;AAE1D,YAAA,IAAI,CAACY,QAAAA,EAAU;AACb,gBAAA;AACF,YAAA;;YAGA,MAAMC,GAAAA,GAAMJ,KAAKI,GAAG;YACpB,MAAMC,KAAAA,GAAQC,MAAAA,CAAOC,QAAQ,CAACH,GAAAA,CAAAA;AAC9B,YAAA,IAAI,CAACC,KAAAA,EAAO;AACV,gBAAA;AACF,YAAA;;YAGA,MAAMG,eAAAA,GAAkB,MAAMT,IAAAA,CAAKP,MAAM,CAACiB,SAAS,CAACT,IAAAA,CAAKT,SAAS,EAAE,QAAA,CAAA;AAEpE,YAAA,IAAIS,KAAKU,UAAU,CAACC,MAAM,IAAI,CAACH,eAAAA,EAAiB;gBAC9C,MAAMnB,kBAAAA,CAAmBU,IAAAA,EAAMC,IAAAA,CAAKT,SAAS,CAAA;AAC/C,YAAA;AACF,QAAA;AACF,IAAA,CAAA;IACA,MAAMqB,IAAAA,CAAAA,GAAAA;AACJ,QAAA,MAAM,IAAIC,KAAAA,CAAM,iBAAA,CAAA;AAClB,IAAA;AACF;;;;"}