From bf92d32a1ab9fd6a71af8bc2c037ccf7c445e5ed Mon Sep 17 00:00:00 2001 From: "ugo.bechameil" Date: Tue, 10 Nov 2026 12:13:42 +0100 Subject: [PATCH 1/2] fix: sort reverse-engineered foreign keys by name The foreign key query has no ORDER BY, so BigQuery returns rows in a different order from run to run, and the relationships came out in a different order too. Co-Authored-By: Claude Opus 5.5 --- reverse_engineering/helpers/constraintsHelper.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reverse_engineering/helpers/constraintsHelper.js b/reverse_engineering/helpers/constraintsHelper.js index d30948c..4212210 100644 --- a/reverse_engineering/helpers/constraintsHelper.js +++ b/reverse_engineering/helpers/constraintsHelper.js @@ -92,7 +92,7 @@ const getConstraintBusinessName = constraintNameFromCloud => { const reverseForeignKeys = foreignKeyConstraintsData => { const constraintNames = [ ...new Set(foreignKeyConstraintsData.map(({ constraint_name }) => getConstraintBusinessName(constraint_name))), - ]; + ].toSorted(); return constraintNames.map(constraintName => { const columns = foreignKeyConstraintsData From 52df2d9373405f7901f6c1aa3145e86472dc838d Mon Sep 17 00:00:00 2001 From: "ugo.bechameil" Date: Tue, 10 Nov 2026 12:15:35 +0100 Subject: [PATCH 2/2] fix: give the foreign key sort an explicit compare function Co-Authored-By: Claude Opus 5.5 --- reverse_engineering/helpers/constraintsHelper.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reverse_engineering/helpers/constraintsHelper.js b/reverse_engineering/helpers/constraintsHelper.js index 4212210..ab0c2a7 100644 --- a/reverse_engineering/helpers/constraintsHelper.js +++ b/reverse_engineering/helpers/constraintsHelper.js @@ -92,7 +92,7 @@ const getConstraintBusinessName = constraintNameFromCloud => { const reverseForeignKeys = foreignKeyConstraintsData => { const constraintNames = [ ...new Set(foreignKeyConstraintsData.map(({ constraint_name }) => getConstraintBusinessName(constraint_name))), - ].toSorted(); + ].toSorted((a, b) => a.localeCompare(b)); return constraintNames.map(constraintName => { const columns = foreignKeyConstraintsData