@strapi/database 5.7.0 → 5.8.0
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 +13 -20
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +13 -20
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
package/dist/index.mjs
CHANGED
|
@@ -1072,14 +1072,8 @@ const createSchemaBuilder = (db) => {
|
|
|
1072
1072
|
};
|
|
1073
1073
|
};
|
|
1074
1074
|
const createHelpers = (db) => {
|
|
1075
|
-
const createForeignKey = (tableBuilder, foreignKey
|
|
1075
|
+
const createForeignKey = (tableBuilder, foreignKey) => {
|
|
1076
1076
|
const { name, columns, referencedColumns, referencedTable, onDelete, onUpdate } = foreignKey;
|
|
1077
|
-
const existingForeignKey = existingForeignKeys?.find((fk) => fk.name === name);
|
|
1078
|
-
const forceMigration = db.config.settings?.forceMigration;
|
|
1079
|
-
if (existingForeignKey && forceMigration) {
|
|
1080
|
-
debug$2(`Dropping existing foreign key ${name}`);
|
|
1081
|
-
tableBuilder.dropForeign(existingForeignKey.columns, name);
|
|
1082
|
-
}
|
|
1083
1077
|
const constraint = tableBuilder.foreign(columns, name).references(referencedColumns).inTable(db.getSchemaName() ? `${db.getSchemaName()}.${referencedTable}` : referencedTable);
|
|
1084
1078
|
if (onDelete) {
|
|
1085
1079
|
constraint.onDelete(onDelete);
|
|
@@ -1088,17 +1082,16 @@ const createHelpers = (db) => {
|
|
|
1088
1082
|
constraint.onUpdate(onUpdate);
|
|
1089
1083
|
}
|
|
1090
1084
|
};
|
|
1091
|
-
const dropForeignKey = (tableBuilder, foreignKey) => {
|
|
1085
|
+
const dropForeignKey = (tableBuilder, foreignKey, existingForeignKeys) => {
|
|
1092
1086
|
const { name, columns } = foreignKey;
|
|
1087
|
+
if (existingForeignKeys && !existingForeignKeys.some((existingIndex) => existingIndex?.name === name)) {
|
|
1088
|
+
debug$2(`Foreign Key ${name} not found in existing foreign keys. Skipping drop.`);
|
|
1089
|
+
return;
|
|
1090
|
+
}
|
|
1093
1091
|
tableBuilder.dropForeign(columns, name);
|
|
1094
1092
|
};
|
|
1095
|
-
const createIndex = (tableBuilder, index2
|
|
1093
|
+
const createIndex = (tableBuilder, index2) => {
|
|
1096
1094
|
const { type, columns, name } = index2;
|
|
1097
|
-
const existingIndex = existingIndexes?.find((existing) => existing.name === name);
|
|
1098
|
-
const forceMigration = db.config.settings?.forceMigration;
|
|
1099
|
-
if (forceMigration && existingIndex) {
|
|
1100
|
-
dropIndex2(tableBuilder, index2);
|
|
1101
|
-
}
|
|
1102
1095
|
switch (type) {
|
|
1103
1096
|
case "primary": {
|
|
1104
1097
|
return tableBuilder.primary(columns, { constraintName: name });
|
|
@@ -1180,12 +1173,12 @@ const createHelpers = (db) => {
|
|
|
1180
1173
|
await schemaBuilder.alterTable(table.name, async (tableBuilder) => {
|
|
1181
1174
|
for (const removedForeignKey of table.foreignKeys.removed) {
|
|
1182
1175
|
debug$2(`Dropping foreign key ${removedForeignKey.name} on ${table.name}`);
|
|
1183
|
-
dropForeignKey(tableBuilder, removedForeignKey);
|
|
1176
|
+
dropForeignKey(tableBuilder, removedForeignKey, existingForeignKeys);
|
|
1184
1177
|
droppedForeignKeyNames.push(removedForeignKey.name);
|
|
1185
1178
|
}
|
|
1186
1179
|
for (const updatedForeignKey of table.foreignKeys.updated) {
|
|
1187
1180
|
debug$2(`Dropping updated foreign key ${updatedForeignKey.name} on ${table.name}`);
|
|
1188
|
-
dropForeignKey(tableBuilder, updatedForeignKey.object);
|
|
1181
|
+
dropForeignKey(tableBuilder, updatedForeignKey.object, existingForeignKeys);
|
|
1189
1182
|
droppedForeignKeyNames.push(updatedForeignKey.object.name);
|
|
1190
1183
|
}
|
|
1191
1184
|
if (db.config.connection.client === "mysql") {
|
|
@@ -1225,19 +1218,19 @@ const createHelpers = (db) => {
|
|
|
1225
1218
|
}
|
|
1226
1219
|
for (const updatedForeignKey of table.foreignKeys.updated) {
|
|
1227
1220
|
debug$2(`Recreating updated foreign key ${updatedForeignKey.name} on ${table.name}`);
|
|
1228
|
-
createForeignKey(tableBuilder, updatedForeignKey.object
|
|
1221
|
+
createForeignKey(tableBuilder, updatedForeignKey.object);
|
|
1229
1222
|
}
|
|
1230
1223
|
for (const updatedIndex of table.indexes.updated) {
|
|
1231
1224
|
debug$2(`Recreating updated index ${updatedIndex.name} on ${table.name}`);
|
|
1232
|
-
createIndex(tableBuilder, updatedIndex.object
|
|
1225
|
+
createIndex(tableBuilder, updatedIndex.object);
|
|
1233
1226
|
}
|
|
1234
1227
|
for (const addedForeignKey of table.foreignKeys.added) {
|
|
1235
1228
|
debug$2(`Creating foreign key ${addedForeignKey.name} on ${table.name}`);
|
|
1236
|
-
createForeignKey(tableBuilder, addedForeignKey
|
|
1229
|
+
createForeignKey(tableBuilder, addedForeignKey);
|
|
1237
1230
|
}
|
|
1238
1231
|
for (const addedIndex of table.indexes.added) {
|
|
1239
1232
|
debug$2(`Creating index ${addedIndex.name} on ${table.name}`);
|
|
1240
|
-
createIndex(tableBuilder, addedIndex
|
|
1233
|
+
createIndex(tableBuilder, addedIndex);
|
|
1241
1234
|
}
|
|
1242
1235
|
});
|
|
1243
1236
|
};
|