@strapi/database 5.7.0 → 5.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +21 -20
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +21 -20
- package/dist/index.mjs.map +1 -1
- package/dist/lifecycles/index.d.ts +2 -0
- package/dist/lifecycles/index.d.ts.map +1 -1
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -1104,14 +1104,8 @@ const createSchemaBuilder = (db) => {
|
|
|
1104
1104
|
};
|
|
1105
1105
|
};
|
|
1106
1106
|
const createHelpers = (db) => {
|
|
1107
|
-
const createForeignKey = (tableBuilder, foreignKey
|
|
1107
|
+
const createForeignKey = (tableBuilder, foreignKey) => {
|
|
1108
1108
|
const { name, columns, referencedColumns, referencedTable, onDelete, onUpdate } = foreignKey;
|
|
1109
|
-
const existingForeignKey = existingForeignKeys?.find((fk) => fk.name === name);
|
|
1110
|
-
const forceMigration = db.config.settings?.forceMigration;
|
|
1111
|
-
if (existingForeignKey && forceMigration) {
|
|
1112
|
-
debug$2(`Dropping existing foreign key ${name}`);
|
|
1113
|
-
tableBuilder.dropForeign(existingForeignKey.columns, name);
|
|
1114
|
-
}
|
|
1115
1109
|
const constraint = tableBuilder.foreign(columns, name).references(referencedColumns).inTable(db.getSchemaName() ? `${db.getSchemaName()}.${referencedTable}` : referencedTable);
|
|
1116
1110
|
if (onDelete) {
|
|
1117
1111
|
constraint.onDelete(onDelete);
|
|
@@ -1120,17 +1114,16 @@ const createHelpers = (db) => {
|
|
|
1120
1114
|
constraint.onUpdate(onUpdate);
|
|
1121
1115
|
}
|
|
1122
1116
|
};
|
|
1123
|
-
const dropForeignKey = (tableBuilder, foreignKey) => {
|
|
1117
|
+
const dropForeignKey = (tableBuilder, foreignKey, existingForeignKeys) => {
|
|
1124
1118
|
const { name, columns } = foreignKey;
|
|
1119
|
+
if (existingForeignKeys && !existingForeignKeys.some((existingIndex) => existingIndex?.name === name)) {
|
|
1120
|
+
debug$2(`Foreign Key ${name} not found in existing foreign keys. Skipping drop.`);
|
|
1121
|
+
return;
|
|
1122
|
+
}
|
|
1125
1123
|
tableBuilder.dropForeign(columns, name);
|
|
1126
1124
|
};
|
|
1127
|
-
const createIndex = (tableBuilder, index2
|
|
1125
|
+
const createIndex = (tableBuilder, index2) => {
|
|
1128
1126
|
const { type, columns, name } = index2;
|
|
1129
|
-
const existingIndex = existingIndexes?.find((existing) => existing.name === name);
|
|
1130
|
-
const forceMigration = db.config.settings?.forceMigration;
|
|
1131
|
-
if (forceMigration && existingIndex) {
|
|
1132
|
-
dropIndex2(tableBuilder, index2);
|
|
1133
|
-
}
|
|
1134
1127
|
switch (type) {
|
|
1135
1128
|
case "primary": {
|
|
1136
1129
|
return tableBuilder.primary(columns, { constraintName: name });
|
|
@@ -1212,12 +1205,12 @@ const createHelpers = (db) => {
|
|
|
1212
1205
|
await schemaBuilder.alterTable(table.name, async (tableBuilder) => {
|
|
1213
1206
|
for (const removedForeignKey of table.foreignKeys.removed) {
|
|
1214
1207
|
debug$2(`Dropping foreign key ${removedForeignKey.name} on ${table.name}`);
|
|
1215
|
-
dropForeignKey(tableBuilder, removedForeignKey);
|
|
1208
|
+
dropForeignKey(tableBuilder, removedForeignKey, existingForeignKeys);
|
|
1216
1209
|
droppedForeignKeyNames.push(removedForeignKey.name);
|
|
1217
1210
|
}
|
|
1218
1211
|
for (const updatedForeignKey of table.foreignKeys.updated) {
|
|
1219
1212
|
debug$2(`Dropping updated foreign key ${updatedForeignKey.name} on ${table.name}`);
|
|
1220
|
-
dropForeignKey(tableBuilder, updatedForeignKey.object);
|
|
1213
|
+
dropForeignKey(tableBuilder, updatedForeignKey.object, existingForeignKeys);
|
|
1221
1214
|
droppedForeignKeyNames.push(updatedForeignKey.object.name);
|
|
1222
1215
|
}
|
|
1223
1216
|
if (db.config.connection.client === "mysql") {
|
|
@@ -1257,19 +1250,19 @@ const createHelpers = (db) => {
|
|
|
1257
1250
|
}
|
|
1258
1251
|
for (const updatedForeignKey of table.foreignKeys.updated) {
|
|
1259
1252
|
debug$2(`Recreating updated foreign key ${updatedForeignKey.name} on ${table.name}`);
|
|
1260
|
-
createForeignKey(tableBuilder, updatedForeignKey.object
|
|
1253
|
+
createForeignKey(tableBuilder, updatedForeignKey.object);
|
|
1261
1254
|
}
|
|
1262
1255
|
for (const updatedIndex of table.indexes.updated) {
|
|
1263
1256
|
debug$2(`Recreating updated index ${updatedIndex.name} on ${table.name}`);
|
|
1264
|
-
createIndex(tableBuilder, updatedIndex.object
|
|
1257
|
+
createIndex(tableBuilder, updatedIndex.object);
|
|
1265
1258
|
}
|
|
1266
1259
|
for (const addedForeignKey of table.foreignKeys.added) {
|
|
1267
1260
|
debug$2(`Creating foreign key ${addedForeignKey.name} on ${table.name}`);
|
|
1268
|
-
createForeignKey(tableBuilder, addedForeignKey
|
|
1261
|
+
createForeignKey(tableBuilder, addedForeignKey);
|
|
1269
1262
|
}
|
|
1270
1263
|
for (const addedIndex of table.indexes.added) {
|
|
1271
1264
|
debug$2(`Creating index ${addedIndex.name} on ${table.name}`);
|
|
1272
|
-
createIndex(tableBuilder, addedIndex
|
|
1265
|
+
createIndex(tableBuilder, addedIndex);
|
|
1273
1266
|
}
|
|
1274
1267
|
});
|
|
1275
1268
|
};
|
|
@@ -6823,6 +6816,7 @@ const createLifecyclesProvider = (db) => {
|
|
|
6823
6816
|
timestampsLifecyclesSubscriber,
|
|
6824
6817
|
modelsLifecyclesSubscriber
|
|
6825
6818
|
];
|
|
6819
|
+
let isLifecycleHooksDisabled = false;
|
|
6826
6820
|
return {
|
|
6827
6821
|
subscribe(subscriber) {
|
|
6828
6822
|
assert.strict(
|
|
@@ -6835,6 +6829,12 @@ const createLifecyclesProvider = (db) => {
|
|
|
6835
6829
|
clear() {
|
|
6836
6830
|
subscribers = [];
|
|
6837
6831
|
},
|
|
6832
|
+
disable() {
|
|
6833
|
+
isLifecycleHooksDisabled = true;
|
|
6834
|
+
},
|
|
6835
|
+
enable() {
|
|
6836
|
+
isLifecycleHooksDisabled = false;
|
|
6837
|
+
},
|
|
6838
6838
|
createEvent(action, uid, properties, state) {
|
|
6839
6839
|
const model = db.metadata.get(uid);
|
|
6840
6840
|
return {
|
|
@@ -6851,6 +6851,7 @@ const createLifecyclesProvider = (db) => {
|
|
|
6851
6851
|
* @param {Map<any, any>} states
|
|
6852
6852
|
*/
|
|
6853
6853
|
async run(action, uid, properties, states = /* @__PURE__ */ new Map()) {
|
|
6854
|
+
if (isLifecycleHooksDisabled) return states;
|
|
6854
6855
|
for (let i = 0; i < subscribers.length; i += 1) {
|
|
6855
6856
|
const subscriber = subscribers[i];
|
|
6856
6857
|
if (typeof subscriber === "function") {
|