From 13601ebe1d77f3d2cac25c8406f150d2b5e80c5f Mon Sep 17 00:00:00 2001 From: DengQingNian <117324885+DengQingNian@users.noreply.github.com> Date: Sat, 10 Oct 2026 21:10:58 +0800 Subject: [PATCH] feat(schema-diff): add MySQL ignore foreign key checks deploy option --- .../components/diff/SchemaDiffDeployStep.vue | 12 ++ .../src/components/diff/SchemaDiffDialog.vue | 20 +++ .../__tests__/SchemaDiffDeployStep.spec.ts | 136 +++++++++++++++ .../i18n/__tests__/featureMessages.spec.ts | 1 + apps/desktop/src/i18n/locales/az.ts | 2 + apps/desktop/src/i18n/locales/en.ts | 2 + apps/desktop/src/i18n/locales/es.ts | 2 + apps/desktop/src/i18n/locales/id.ts | 2 + apps/desktop/src/i18n/locales/it.ts | 2 + apps/desktop/src/i18n/locales/ja.ts | 2 + apps/desktop/src/i18n/locales/ko.ts | 2 + apps/desktop/src/i18n/locales/pt-BR.ts | 2 + apps/desktop/src/i18n/locales/ru.ts | 2 + apps/desktop/src/i18n/locales/tr.ts | 2 + apps/desktop/src/i18n/locales/zh-CN.ts | 2 + apps/desktop/src/i18n/locales/zh-TW.ts | 2 + apps/desktop/src/lib/schema/schemaDiff.ts | 7 + crates/dbx-sql-schema/src/schema_diff.rs | 159 ++++++++++++++++++ crates/dbx-web/src/routes/schema_diff.rs | 4 + docs/content/docs/schema-diff.cn.mdx | 2 + docs/content/docs/schema-diff.mdx | 2 + src-tauri/src/commands/schema_diff.rs | 4 + 22 files changed, 371 insertions(+) create mode 100644 apps/desktop/src/components/diff/__tests__/SchemaDiffDeployStep.spec.ts diff --git a/apps/desktop/src/components/diff/SchemaDiffDeployStep.vue b/apps/desktop/src/components/diff/SchemaDiffDeployStep.vue index fee4af85f4..27f80300a3 100644 --- a/apps/desktop/src/components/diff/SchemaDiffDeployStep.vue +++ b/apps/desktop/src/components/diff/SchemaDiffDeployStep.vue @@ -48,11 +48,16 @@ const props = defineProps<{ missingRollbackObjects?: MissingRollbackObject[]; canExecute?: boolean; destructiveStatementCount?: number; + /** Current value of the "ignore foreign key checks" deploy option. */ + ignoreForeignKeyChecks?: boolean; + /** Whether the target database is MySQL, the only engine that gets the option. */ + showIgnoreForeignKeyChecks?: boolean; }>(); const emit = defineEmits<{ "update:deploySql": [sql: string]; "update:deploySqlMode": [mode: "forward" | "rollback"]; + "update:ignoreForeignKeyChecks": [enabled: boolean]; back: []; deploy: []; }>(); @@ -383,6 +388,13 @@ function getObjectIconColor(kind: DiffObjectKind): string { {{ t("diff.exportSql") }} + +