fix(mysql): format bit values for grid sync

This commit is contained in:
t8y2 committed 2026-06-03 11:07:04 +08:00
1 parent 66fc5e2b05
commit 9e041b3c5e
4 files changed
+165 -52

No files matched your search

@@ -18,7 +18,7 @@ import type {
DataCompareSyncPlan,
DataCompareSyncPlanTableOptions,
} from "@/lib/dataCompare";
import type { DatabaseType } from "@/types/database";
import type { ColumnInfo, DatabaseType } from "@/types/database";
import * as api from "@/lib/api";
import DatabaseIcon from "@/components/icons/DatabaseIcon.vue";
import {
@@ -33,10 +33,7 @@ import {
Square,
} from "lucide-vue-next";
interface CompareColumn {
name: string;
is_primary_key?: boolean;
}
type CompareColumn = ColumnInfo;
interface DataCompareTableTask {
sourceTable: string;
@@ -65,6 +62,7 @@ interface DataCompareTableResult {
targetTable: string;
keyColumns: string[];
columns: string[];
columnInfo: CompareColumn[];
status: DataCompareTableStatus;
added: number;
removed: number;
@@ -584,6 +582,7 @@ function buildSyncPlanTables(): DataCompareSyncPlanTableOptions[] {
schema: targetSchema.value,
columns: table.columns,
keyColumns: table.keyColumns,
columnInfo: table.columnInfo,
diff: buildSelectedDiff(table),
databaseType: table.databaseType,
preSyncStatements: table.preSyncStatements ?? [],
@@ -672,6 +671,7 @@ async function startCompare() {
targetTable: task.targetTable,
keyColumns: resolvedKeys,
columns: sourceColumns.map((column) => column.name),
columnInfo: sourceColumns,
status: "different",
added: preparation.result.added.length,
removed: 0,
@@ -718,6 +718,9 @@ async function startCompare() {
const columns = sourceColumns
.map((column) => column.name)
.filter((column) => targetColumns.some((target) => target.name === column));
const columnInfo = columns
.map((column) => targetColumns.find((target) => target.name === column))
.filter((column): column is CompareColumn => !!column);
const missingKeys = resolvedKeys.filter((column) => !columns.includes(column));
if (missingKeys.length > 0) {
throw new Error(t("dataCompare.missingKeyColumns", { columns: missingKeys.join(", ") }));
@@ -749,6 +752,7 @@ async function startCompare() {
targetTable: task.targetTable,
keyColumns: resolvedKeys,
columns,
columnInfo,
status,
added,
removed,
@@ -772,6 +776,7 @@ async function startCompare() {
targetTable: task.targetTable,
keyColumns: keyColumns.value,
columns: [],
columnInfo: [],
status: "error",
added: 0,
removed: 0,