relq 1.0.104 → 1.0.105

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -157,6 +157,35 @@ async function runPush(config, projectRoot, opts = {}) {
157
157
  const diff = (0, schema_diff_1.diffSchemas)((0, schema_hash_1.normalizeSchema)(dbSchema), (0, schema_hash_1.normalizeSchema)(desiredSchema));
158
158
  let filteredDiff = (0, schema_diff_1.filterDiff)(diff, ignorePatterns.map(pat => pat.raw));
159
159
  const dbParsedSchema = await (0, ast_transformer_1.introspectedToParsedSchema)(dbSchema);
160
+ const snapshot = (0, snapshot_manager_1.loadSnapshot)(snapshotPath);
161
+ if (snapshot) {
162
+ const snapTables = Object.values(snapshot.tables || {});
163
+ for (const dbTable of dbParsedSchema.tables) {
164
+ const snapTable = snapTables.find(s => s.name === dbTable.name);
165
+ if (!snapTable)
166
+ continue;
167
+ if (snapTable.trackingId)
168
+ dbTable.trackingId = snapTable.trackingId;
169
+ const snapCols = Object.values(snapTable.columns || {});
170
+ for (const dbCol of dbTable.columns) {
171
+ const snapCol = snapCols.find(s => s.name === dbCol.name);
172
+ if (snapCol?.trackingId)
173
+ dbCol.trackingId = snapCol.trackingId;
174
+ }
175
+ const snapIdxs = Object.values(snapTable.indexes || {});
176
+ for (const dbIdx of dbTable.indexes) {
177
+ const snapIdx = snapIdxs.find(s => s.name === dbIdx.name);
178
+ if (snapIdx?.trackingId)
179
+ dbIdx.trackingId = snapIdx.trackingId;
180
+ }
181
+ const snapCons = Object.values(snapTable.constraints || {});
182
+ for (const dbCon of dbTable.constraints) {
183
+ const snapCon = snapCons.find(s => s.name === dbCon.name);
184
+ if (snapCon?.trackingId)
185
+ dbCon.trackingId = snapCon.trackingId;
186
+ }
187
+ }
188
+ }
160
189
  const desiredASTCopy = { ...desiredAST };
161
190
  if (!includeFunctions) {
162
191
  dbParsedSchema.functions = [];
@@ -14,7 +14,7 @@ import { validateForDialect, formatDialectErrors } from "../utils/dialect-valida
14
14
  import { validateSchemaFile, formatValidationErrors } from "../utils/schema-validator.js";
15
15
  import { loadRelqignore } from "../utils/relqignore.js";
16
16
  import { isInitialized } from "../utils/repo-manager.js";
17
- import { saveSnapshot } from "../utils/snapshot-manager.js";
17
+ import { loadSnapshot, saveSnapshot } from "../utils/snapshot-manager.js";
18
18
  import { loadSchemaFile } from "../utils/schema-loader.js";
19
19
  import { diffSchemas, filterDiff, hasDestructiveChanges, getDestructiveTables, stripDestructiveChanges, formatCategorizedSummary, compareSchemas } from "../utils/schema-diff.js";
20
20
  import { normalizeSchema } from "../utils/schema-hash.js";
@@ -121,6 +121,35 @@ export async function runPush(config, projectRoot, opts = {}) {
121
121
  const diff = diffSchemas(normalizeSchema(dbSchema), normalizeSchema(desiredSchema));
122
122
  let filteredDiff = filterDiff(diff, ignorePatterns.map(pat => pat.raw));
123
123
  const dbParsedSchema = await introspectedToParsedSchema(dbSchema);
124
+ const snapshot = loadSnapshot(snapshotPath);
125
+ if (snapshot) {
126
+ const snapTables = Object.values(snapshot.tables || {});
127
+ for (const dbTable of dbParsedSchema.tables) {
128
+ const snapTable = snapTables.find(s => s.name === dbTable.name);
129
+ if (!snapTable)
130
+ continue;
131
+ if (snapTable.trackingId)
132
+ dbTable.trackingId = snapTable.trackingId;
133
+ const snapCols = Object.values(snapTable.columns || {});
134
+ for (const dbCol of dbTable.columns) {
135
+ const snapCol = snapCols.find(s => s.name === dbCol.name);
136
+ if (snapCol?.trackingId)
137
+ dbCol.trackingId = snapCol.trackingId;
138
+ }
139
+ const snapIdxs = Object.values(snapTable.indexes || {});
140
+ for (const dbIdx of dbTable.indexes) {
141
+ const snapIdx = snapIdxs.find(s => s.name === dbIdx.name);
142
+ if (snapIdx?.trackingId)
143
+ dbIdx.trackingId = snapIdx.trackingId;
144
+ }
145
+ const snapCons = Object.values(snapTable.constraints || {});
146
+ for (const dbCon of dbTable.constraints) {
147
+ const snapCon = snapCons.find(s => s.name === dbCon.name);
148
+ if (snapCon?.trackingId)
149
+ dbCon.trackingId = snapCon.trackingId;
150
+ }
151
+ }
152
+ }
124
153
  const desiredASTCopy = { ...desiredAST };
125
154
  if (!includeFunctions) {
126
155
  dbParsedSchema.functions = [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "relq",
3
- "version": "1.0.104",
3
+ "version": "1.0.105",
4
4
  "description": "The Fully-Typed PostgreSQL ORM for TypeScript",
5
5
  "author": "Olajide Mathew O. <olajide.mathew@yuniq.solutions>",
6
6
  "license": "MIT",