fix(schema-diff): guard deploy script execution
This commit is contained in:
1 parent
469bd88c37
commit
f664918e95
6 files changed
+125
-18
No files matched your search
@@ -51,6 +51,7 @@ import {
|
||||
type CompatibilityWarning,
|
||||
type PermissionDiff,
|
||||
type DependencyGraph,
|
||||
normalizeSchemaDiffDependencyGraph,
|
||||
} from "@/lib/schema/schemaDiff";
|
||||
import { compileSchemaDiffTableFilter, filterSchemaDiffTables } from "@/lib/schema/schemaDiffTableFilter";
|
||||
import { Splitpanes, Pane } from "splitpanes";
|
||||
@@ -593,7 +594,7 @@ async function handleCompare() {
|
||||
renameCandidates.value = result.renameCandidates ?? [];
|
||||
compatibilityWarnings.value = result.compatibilityWarnings ?? [];
|
||||
permissionDiffs.value = result.permissionDiffs ?? [];
|
||||
dependencyGraph.value = result.dependencyGraph ?? null;
|
||||
dependencyGraph.value = normalizeSchemaDiffDependencyGraph(result.dependencyGraph);
|
||||
|
||||
// Convert to unified objects
|
||||
diffObjects.value = convertToSchemaDiffObjects(result.diffs, result.functionDiffs, result.sequenceDiffs, result.ruleDiffs, result.ownerDiffs, result.renameCandidates);
|
||||
@@ -686,13 +687,19 @@ function formatSchemaSyncPlan(plan: Awaited<ReturnType<typeof api.generateSchema
|
||||
return { forwardSql, rollbackSql: nextRollbackSql };
|
||||
}
|
||||
|
||||
function clearSelectedDeploySql() {
|
||||
selectedForwardDeploySql.value = "";
|
||||
selectedDeploySql.value = "";
|
||||
rollbackSql.value = "";
|
||||
rollbackCompleteness.value = "complete";
|
||||
missingRollbackObjects.value = [];
|
||||
}
|
||||
|
||||
async function regenerateSelectedDeploySql() {
|
||||
const result = lastDiffResult.value;
|
||||
const generation = ++selectedDeploySqlGeneration;
|
||||
clearSelectedDeploySql();
|
||||
if (!result) {
|
||||
selectedForwardDeploySql.value = "-- No objects selected";
|
||||
selectedDeploySql.value = "-- No objects selected";
|
||||
rollbackSql.value = "";
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -718,10 +725,10 @@ async function regenerateSelectedDeploySql() {
|
||||
async function regenerateFocusedDeploySql(objectId: string | null = selectedObjectId.value) {
|
||||
const result = lastDiffResult.value;
|
||||
const generation = ++focusedDeploySqlGeneration;
|
||||
focusedForwardDeploySql.value = "";
|
||||
focusedRollbackSql.value = "";
|
||||
focusedDeploySql.value = "";
|
||||
if (!result || !objectId || !findSchemaDiffObject(diffObjects.value, objectId)) {
|
||||
focusedForwardDeploySql.value = "-- No objects selected";
|
||||
focusedRollbackSql.value = "";
|
||||
focusedDeploySql.value = "-- No objects selected";
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -759,7 +766,8 @@ const canExecuteDeploy = computed(() => {
|
||||
if (deploySqlMode.value === "rollback" && rollbackCompleteness.value === "incomplete") {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
const sql = selectedDeploySql.value.trim();
|
||||
return sql.length > 0 && sql !== "-- No objects selected";
|
||||
});
|
||||
|
||||
const destructiveStatements = computed(() => {
|
||||
|
||||
Reference in new issue
Block a user