diff --git a/packages/datalib/src/deleteCascade.ts b/packages/datalib/src/deleteCascade.ts index 781582753..598e29f0e 100644 --- a/packages/datalib/src/deleteCascade.ts +++ b/packages/datalib/src/deleteCascade.ts @@ -45,6 +45,7 @@ function processDependencies( conditionType: 'exists', subQuery: { commandType: 'select', + selectAll: true, from: { name: { pureName: fk.pureName, diff --git a/packages/web/src/modals/ConfirmSqlModal.svelte b/packages/web/src/modals/ConfirmSqlModal.svelte index 76481f6e8..49f861aac 100644 --- a/packages/web/src/modals/ConfirmSqlModal.svelte +++ b/packages/web/src/modals/ConfirmSqlModal.svelte @@ -1,11 +1,10 @@ - +
Save changes
- - values[`deleteReferences_${title}`] !== false) - .map(({ script, title }) => script), - sql, - ].join('\n') - : sql} - readOnly - /> - + $values[`deleteReferencesFor_${title}`] !== false) + .map(({ script, title }) => script), + sql, + ].join('\n') + : sql} + readOnly + />
{#if !_.isEmpty(deleteCascadesScripts)} @@ -54,25 +52,39 @@ {/if} - - {#if values.deleteReferencesCascade} - + {#if $values.deleteReferencesCascade} +
+ { + $values = _.omitBy($values, (v, k) => k.startsWith('deleteReferencesFor_')); + }} + /> + { + const newValues = { ...$values }; + for (const item of deleteCascadesScripts) { + newValues[`deleteReferencesFor_${item.title}`] = false; + } + $values = newValues; + }} + /> +
-
- {#each _.sortBy(deleteCascadesScripts, 'title') as deleteTable} -
- -
- {/each} -
- {/if} -
+
+ {#each _.sortBy(deleteCascadesScripts, 'title') as deleteTable} +
+ +
+ {/each} +
+ {/if} {#if isRecreated}
@@ -89,29 +101,27 @@ {/if}
- - { - closeCurrentModal(); - onConfirm( - e.detail.deleteReferencesCascade - ? [ - ...deleteCascadesScripts - .filter(({ script, title }) => e.detail[`deleteReferences_${title}`] !== false) - .map(({ script, title }) => script), - sql, - ].join('\n') - : null - ); - }} - /> - - + { + closeCurrentModal(); + onConfirm( + e.detail.deleteReferencesCascade + ? [ + ...deleteCascadesScripts + .filter(({ script, title }) => e.detail[`deleteReferencesFor_${title}`] !== false) + .map(({ script, title }) => script), + sql, + ].join('\n') + : null + ); + }} + /> +
- + diff --git a/packages/web/src/tabs/TableDataTab.svelte b/packages/web/src/tabs/TableDataTab.svelte index ad78b102e..5e2351c57 100644 --- a/packages/web/src/tabs/TableDataTab.svelte +++ b/packages/web/src/tabs/TableDataTab.svelte @@ -97,7 +97,7 @@ console.log('deleteCascadesScripts', deleteCascadesScripts); showModal(ConfirmSqlModal, { sql, - onConfirm: () => handleConfirmSql(sql), + onConfirm: sqlOverride => handleConfirmSql(sqlOverride || sql), engine: driver.engine, deleteCascadesScripts, });