@memberjunction/cli 5.30.0 → 5.31.0
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.
- package/dist/commands/migrate/convert.d.ts +39 -0
- package/dist/commands/migrate/convert.d.ts.map +1 -0
- package/dist/commands/migrate/convert.js +207 -0
- package/dist/commands/migrate/convert.js.map +1 -0
- package/dist/commands/migrate/create.d.ts +42 -0
- package/dist/commands/migrate/create.d.ts.map +1 -0
- package/dist/commands/migrate/create.js +174 -0
- package/dist/commands/migrate/create.js.map +1 -0
- package/dist/commands/sync/pull.d.ts +2 -0
- package/dist/commands/sync/pull.d.ts.map +1 -1
- package/dist/commands/sync/pull.js +19 -2
- package/dist/commands/sync/pull.js.map +1 -1
- package/dist/commands/sync/push.d.ts +1 -0
- package/dist/commands/sync/push.d.ts.map +1 -1
- package/dist/commands/sync/push.js +32 -3
- package/dist/commands/sync/push.js.map +1 -1
- package/dist/commands/translate-sql/index.js +2 -2
- package/dist/commands/translate-sql/index.js.map +1 -1
- package/dist/config.d.ts +6 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +58 -13
- package/dist/config.js.map +1 -1
- package/dist/light-commands.d.ts.map +1 -1
- package/dist/light-commands.js +2 -0
- package/dist/light-commands.js.map +1 -1
- package/oclif.manifest.json +294 -130
- package/package.json +17 -15
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
/**
|
|
3
|
+
* CLI command to discover and convert T-SQL migrations to PostgreSQL.
|
|
4
|
+
*
|
|
5
|
+
* Scans the SQL Server migrations directory, identifies files that don't
|
|
6
|
+
* have a corresponding .pg.sql counterpart in the PG migrations directory,
|
|
7
|
+
* and converts them using the BatchConverter pipeline.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* mj migrate convert # Convert all unconverted migrations
|
|
11
|
+
* mj migrate convert --file V20260401__foo.sql # Convert a specific file
|
|
12
|
+
* mj migrate convert --dry-run # Show what would be converted
|
|
13
|
+
* mj migrate convert --verbose # Show per-statement progress
|
|
14
|
+
*/
|
|
15
|
+
export default class MigrateConvert extends Command {
|
|
16
|
+
static description: string;
|
|
17
|
+
static examples: string[];
|
|
18
|
+
static flags: {
|
|
19
|
+
'source-dir': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
20
|
+
'output-dir': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
21
|
+
file: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
22
|
+
schema: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
23
|
+
'dry-run': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
24
|
+
'no-header': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
25
|
+
verbose: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
26
|
+
};
|
|
27
|
+
run(): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Discovers T-SQL migrations that don't have a corresponding PG counterpart.
|
|
30
|
+
*
|
|
31
|
+
* A T-SQL file like `V202604060452__v5.24.x__Foo.sql` maps to:
|
|
32
|
+
* - `V202604060452__v5.24.x__Foo.pg.sql` in the output directory
|
|
33
|
+
*
|
|
34
|
+
* Baseline files (B__) and .pg-only.sql files are skipped.
|
|
35
|
+
*/
|
|
36
|
+
private discoverUnconverted;
|
|
37
|
+
private mergeStats;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=convert.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../src/commands/migrate/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAG7C;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,OAAO;IACjD,MAAM,CAAC,WAAW,SAA8E;IAEhG,MAAM,CAAC,QAAQ,WAMb;IAEF,MAAM,CAAC,KAAK;;;;;;;;MA6BV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAiH1B;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IA2C3B,OAAO,CAAC,UAAU;CAmBnB"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import { Command, Flags } from '@oclif/core';
|
|
2
|
+
/**
|
|
3
|
+
* CLI command to discover and convert T-SQL migrations to PostgreSQL.
|
|
4
|
+
*
|
|
5
|
+
* Scans the SQL Server migrations directory, identifies files that don't
|
|
6
|
+
* have a corresponding .pg.sql counterpart in the PG migrations directory,
|
|
7
|
+
* and converts them using the BatchConverter pipeline.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* mj migrate convert # Convert all unconverted migrations
|
|
11
|
+
* mj migrate convert --file V20260401__foo.sql # Convert a specific file
|
|
12
|
+
* mj migrate convert --dry-run # Show what would be converted
|
|
13
|
+
* mj migrate convert --verbose # Show per-statement progress
|
|
14
|
+
*/
|
|
15
|
+
export default class MigrateConvert extends Command {
|
|
16
|
+
static { this.description = 'Convert T-SQL migrations to PostgreSQL using the BatchConverter pipeline'; }
|
|
17
|
+
static { this.examples = [
|
|
18
|
+
'<%= config.bin %> migrate convert',
|
|
19
|
+
'<%= config.bin %> migrate convert --dry-run',
|
|
20
|
+
'<%= config.bin %> migrate convert --file V202604060452__v5.24.x__KnowledgeHub.sql',
|
|
21
|
+
'<%= config.bin %> migrate convert --source-dir ./migrations/v5 --output-dir ./migrations-pg/v5',
|
|
22
|
+
'<%= config.bin %> migrate convert --verbose',
|
|
23
|
+
]; }
|
|
24
|
+
static { this.flags = {
|
|
25
|
+
'source-dir': Flags.string({
|
|
26
|
+
description: 'Source T-SQL migrations directory',
|
|
27
|
+
default: './migrations/v5',
|
|
28
|
+
}),
|
|
29
|
+
'output-dir': Flags.string({
|
|
30
|
+
description: 'Output PG migrations directory',
|
|
31
|
+
default: './migrations-pg/v5',
|
|
32
|
+
}),
|
|
33
|
+
file: Flags.string({
|
|
34
|
+
description: 'Convert a specific file (filename only, looked up in source-dir)',
|
|
35
|
+
}),
|
|
36
|
+
schema: Flags.string({
|
|
37
|
+
description: 'Target schema name',
|
|
38
|
+
default: '__mj',
|
|
39
|
+
}),
|
|
40
|
+
'dry-run': Flags.boolean({
|
|
41
|
+
description: 'Show what would be converted without writing files',
|
|
42
|
+
default: false,
|
|
43
|
+
}),
|
|
44
|
+
'no-header': Flags.boolean({
|
|
45
|
+
description: 'Skip PG header (extensions, schema, implicit cast)',
|
|
46
|
+
default: false,
|
|
47
|
+
}),
|
|
48
|
+
verbose: Flags.boolean({
|
|
49
|
+
char: 'v',
|
|
50
|
+
description: 'Show per-statement progress',
|
|
51
|
+
default: false,
|
|
52
|
+
}),
|
|
53
|
+
}; }
|
|
54
|
+
async run() {
|
|
55
|
+
const { flags } = await this.parse(MigrateConvert);
|
|
56
|
+
const fs = await import('node:fs');
|
|
57
|
+
const path = await import('node:path');
|
|
58
|
+
const { convertFile, getRulesForDialects, createConversionStats, deduplicateEntityFieldSequences } = await import('@memberjunction/sql-converter');
|
|
59
|
+
const sourceDir = path.resolve(flags['source-dir']);
|
|
60
|
+
const outputDir = path.resolve(flags['output-dir']);
|
|
61
|
+
// Verify directories exist
|
|
62
|
+
if (!fs.existsSync(sourceDir)) {
|
|
63
|
+
this.error(`Source directory not found: ${sourceDir}`);
|
|
64
|
+
}
|
|
65
|
+
if (!fs.existsSync(outputDir)) {
|
|
66
|
+
fs.mkdirSync(outputDir, { recursive: true });
|
|
67
|
+
this.log(`Created output directory: ${outputDir}`);
|
|
68
|
+
}
|
|
69
|
+
// Load conversion rules
|
|
70
|
+
const rules = getRulesForDialects('tsql', 'postgres');
|
|
71
|
+
if (rules.length === 0) {
|
|
72
|
+
this.error('No conversion rules found for tsql -> postgres');
|
|
73
|
+
}
|
|
74
|
+
// Discover migrations
|
|
75
|
+
const unconverted = this.discoverUnconverted(sourceDir, outputDir, flags.file, fs, path);
|
|
76
|
+
if (unconverted.length === 0) {
|
|
77
|
+
this.log('All migrations are already converted. Nothing to do.');
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
this.log(`Found ${unconverted.length} migration(s) to convert:\n`);
|
|
81
|
+
for (const m of unconverted) {
|
|
82
|
+
this.log(` ${m.SourceFile} → ${m.OutputFile}`);
|
|
83
|
+
}
|
|
84
|
+
if (flags['dry-run']) {
|
|
85
|
+
this.log('\nDry run — no files written.');
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
this.log('');
|
|
89
|
+
// Convert each file
|
|
90
|
+
let successCount = 0;
|
|
91
|
+
let errorCount = 0;
|
|
92
|
+
const totalStats = createConversionStats();
|
|
93
|
+
for (const migration of unconverted) {
|
|
94
|
+
this.log(`Converting: ${migration.SourceFile}`);
|
|
95
|
+
const config = {
|
|
96
|
+
Source: path.join(sourceDir, migration.SourceFile),
|
|
97
|
+
SourceIsFile: true,
|
|
98
|
+
OutputFile: path.join(outputDir, migration.OutputFile),
|
|
99
|
+
Rules: rules,
|
|
100
|
+
Schema: flags.schema,
|
|
101
|
+
SourceDialect: 'tsql',
|
|
102
|
+
TargetDialect: 'postgres',
|
|
103
|
+
IncludeHeader: !flags['no-header'],
|
|
104
|
+
EnablePostProcess: true,
|
|
105
|
+
OnProgress: flags.verbose ? (msg) => this.log(` ${msg}`) : undefined,
|
|
106
|
+
};
|
|
107
|
+
const result = convertFile(config);
|
|
108
|
+
this.mergeStats(totalStats, result.Stats);
|
|
109
|
+
if (result.Stats.Errors > 0) {
|
|
110
|
+
errorCount++;
|
|
111
|
+
this.logToStderr(` ERRORS: ${result.Stats.Errors} in ${migration.SourceFile}`);
|
|
112
|
+
for (const err of result.Stats.ErrorBatches) {
|
|
113
|
+
this.logToStderr(` ${err.substring(0, 200)}`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
successCount++;
|
|
118
|
+
this.log(` OK (${result.Stats.Converted} batches, ${result.Stats.TotalBatches - result.Stats.Converted} skipped)`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// Print summary
|
|
122
|
+
this.log('');
|
|
123
|
+
this.log('=== Conversion Summary ===');
|
|
124
|
+
this.log(` Files: ${unconverted.length} (${successCount} OK, ${errorCount} errors)`);
|
|
125
|
+
this.log(` Batches: ${totalStats.TotalBatches} total, ${totalStats.Converted} converted, ${totalStats.Skipped} skipped, ${totalStats.Errors} errors`);
|
|
126
|
+
this.log(` Tables: ${totalStats.TablesCreated}`);
|
|
127
|
+
this.log(` Views: ${totalStats.ViewsCreated}`);
|
|
128
|
+
this.log(` Procedures: ${totalStats.ProceduresConverted}`);
|
|
129
|
+
this.log(` Functions: ${totalStats.FunctionsConverted}`);
|
|
130
|
+
this.log(` Triggers: ${totalStats.TriggersConverted}`);
|
|
131
|
+
this.log(` Indexes: ${totalStats.IndexesCreated}`);
|
|
132
|
+
this.log(` Inserts: ${totalStats.InsertsConverted}`);
|
|
133
|
+
this.log(` Grants: ${totalStats.GrantsConverted}`);
|
|
134
|
+
if (errorCount > 0) {
|
|
135
|
+
this.error(`Conversion completed with errors in ${errorCount} file(s)`);
|
|
136
|
+
}
|
|
137
|
+
// Post-conversion: deduplicate EntityField Sequence values across files
|
|
138
|
+
// to prevent UQ_EntityField_EntityID_Sequence violations on PG
|
|
139
|
+
this.log('\nRunning EntityField Sequence deduplication...');
|
|
140
|
+
const dedupResult = deduplicateEntityFieldSequences(outputDir);
|
|
141
|
+
if (dedupResult.totalCollisions > 0) {
|
|
142
|
+
this.log(` Fixed ${dedupResult.totalCollisions} sequence collision(s) across ${dedupResult.fixes.length} INSERT(s):`);
|
|
143
|
+
for (const fix of dedupResult.fixes) {
|
|
144
|
+
this.log(` ${fix.file} line ${fix.line}: ${fix.originalSequence} → ${fix.newSequence}`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
this.log(` No collisions found (${dedupResult.totalInserts} EntityField INSERTs scanned).`);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Discovers T-SQL migrations that don't have a corresponding PG counterpart.
|
|
153
|
+
*
|
|
154
|
+
* A T-SQL file like `V202604060452__v5.24.x__Foo.sql` maps to:
|
|
155
|
+
* - `V202604060452__v5.24.x__Foo.pg.sql` in the output directory
|
|
156
|
+
*
|
|
157
|
+
* Baseline files (B__) and .pg-only.sql files are skipped.
|
|
158
|
+
*/
|
|
159
|
+
discoverUnconverted(sourceDir, outputDir, specificFile, fs, path) {
|
|
160
|
+
const sourceFiles = fs.readdirSync(sourceDir)
|
|
161
|
+
.filter((f) => f.endsWith('.sql') && !f.endsWith('.pg.sql') && !f.endsWith('.pg-only.sql'))
|
|
162
|
+
.sort();
|
|
163
|
+
const outputFiles = new Set(fs.readdirSync(outputDir)
|
|
164
|
+
.filter((f) => f.endsWith('.pg.sql') || f.endsWith('.pg-only.sql')));
|
|
165
|
+
const unconverted = [];
|
|
166
|
+
for (const sourceFile of sourceFiles) {
|
|
167
|
+
// If a specific file was requested, only convert that one
|
|
168
|
+
if (specificFile && sourceFile !== specificFile) {
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
// Generate expected PG filename: replace .sql with .pg.sql
|
|
172
|
+
const pgFileName = sourceFile.replace(/\.sql$/, '.pg.sql');
|
|
173
|
+
// Check if PG version already exists
|
|
174
|
+
if (!outputFiles.has(pgFileName)) {
|
|
175
|
+
// Also check if a .pg-only.sql variant exists (manual PG-specific override)
|
|
176
|
+
const pgOnlyFileName = sourceFile.replace(/\.sql$/, '.pg-only.sql');
|
|
177
|
+
if (!outputFiles.has(pgOnlyFileName)) {
|
|
178
|
+
unconverted.push({
|
|
179
|
+
SourceFile: sourceFile,
|
|
180
|
+
OutputFile: pgFileName,
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
return unconverted;
|
|
186
|
+
}
|
|
187
|
+
mergeStats(target, source) {
|
|
188
|
+
target.TotalBatches += source.TotalBatches;
|
|
189
|
+
target.Converted += source.Converted;
|
|
190
|
+
target.Skipped += source.Skipped;
|
|
191
|
+
target.Errors += source.Errors;
|
|
192
|
+
target.TablesCreated += source.TablesCreated;
|
|
193
|
+
target.ViewsCreated += source.ViewsCreated;
|
|
194
|
+
target.ProceduresConverted += source.ProceduresConverted;
|
|
195
|
+
target.FunctionsConverted += source.FunctionsConverted;
|
|
196
|
+
target.TriggersConverted += source.TriggersConverted;
|
|
197
|
+
target.IndexesCreated += source.IndexesCreated;
|
|
198
|
+
target.InsertsConverted += source.InsertsConverted;
|
|
199
|
+
target.GrantsConverted += source.GrantsConverted;
|
|
200
|
+
target.FKConstraints += source.FKConstraints;
|
|
201
|
+
target.CheckConstraints += source.CheckConstraints;
|
|
202
|
+
target.CommentsConverted += source.CommentsConverted;
|
|
203
|
+
target.ErrorBatches.push(...source.ErrorBatches);
|
|
204
|
+
target.SkippedBatches.push(...source.SkippedBatches);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
//# sourceMappingURL=convert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/commands/migrate/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAG7C;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,OAAO;aAC1C,gBAAW,GAAG,0EAA0E,CAAC;aAEzF,aAAQ,GAAG;QAChB,mCAAmC;QACnC,6CAA6C;QAC7C,mFAAmF;QACnF,gGAAgG;QAChG,6CAA6C;KAC9C,CAAC;aAEK,UAAK,GAAG;QACb,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC;YACzB,WAAW,EAAE,mCAAmC;YAChD,OAAO,EAAE,iBAAiB;SAC3B,CAAC;QACF,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC;YACzB,WAAW,EAAE,gCAAgC;YAC7C,OAAO,EAAE,oBAAoB;SAC9B,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE,kEAAkE;SAChF,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,oBAAoB;YACjC,OAAO,EAAE,MAAM;SAChB,CAAC;QACF,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC;YACvB,WAAW,EAAE,oDAAoD;YACjE,OAAO,EAAE,KAAK;SACf,CAAC;QACF,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC;YACzB,WAAW,EAAE,oDAAoD;YACjE,OAAO,EAAE,KAAK;SACf,CAAC;QACF,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;YACrB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,6BAA6B;YAC1C,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAEnD,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QACvC,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,+BAA+B,EAAE,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;QAEnJ,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;QAEpD,2BAA2B;QAC3B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7C,IAAI,CAAC,GAAG,CAAC,6BAA6B,SAAS,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,wBAAwB;QACxB,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACtD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAC/D,CAAC;QAED,sBAAsB;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAEzF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,SAAS,WAAW,CAAC,MAAM,6BAA6B,CAAC,CAAC;QACnE,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,UAAU,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEb,oBAAoB;QACpB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,MAAM,UAAU,GAAoB,qBAAqB,EAAE,CAAC;QAE5D,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;YACpC,IAAI,CAAC,GAAG,CAAC,eAAe,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;YAEhD,MAAM,MAAM,GAAyB;gBACnC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,UAAU,CAAC;gBAClD,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,UAAU,CAAC;gBACtD,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,aAAa,EAAE,MAAM;gBACrB,aAAa,EAAE,UAAU;gBACzB,aAAa,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC;gBAClC,iBAAiB,EAAE,IAAI;gBACvB,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;aAC9E,CAAC;YAEF,MAAM,MAAM,GAAyB,WAAW,CAAC,MAAM,CAAC,CAAC;YACzD,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAE1C,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,UAAU,EAAE,CAAC;gBACb,IAAI,CAAC,WAAW,CAAC,aAAa,MAAM,CAAC,KAAK,CAAC,MAAM,OAAO,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;gBAChF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;oBAC5C,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,YAAY,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,KAAK,CAAC,SAAS,aAAa,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,WAAW,CAAC,CAAC;YACtH,CAAC;QACH,CAAC;QAED,gBAAgB;QAChB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACb,IAAI,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,kBAAkB,WAAW,CAAC,MAAM,KAAK,YAAY,QAAQ,UAAU,UAAU,CAAC,CAAC;QAC5F,IAAI,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,YAAY,WAAW,UAAU,CAAC,SAAS,eAAe,UAAU,CAAC,OAAO,aAAa,UAAU,CAAC,MAAM,SAAS,CAAC,CAAC;QAC3J,IAAI,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;QAEzD,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,CAAC,uCAAuC,UAAU,UAAU,CAAC,CAAC;QAC1E,CAAC;QAED,wEAAwE;QACxE,+DAA+D;QAC/D,IAAI,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAG,+BAA+B,CAAC,SAAS,CAAC,CAAC;QAC/D,IAAI,WAAW,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,GAAG,CAAC,WAAW,WAAW,CAAC,eAAe,iCAAiC,WAAW,CAAC,KAAK,CAAC,MAAM,aAAa,CAAC,CAAC;YACvH,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;gBACpC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,gBAAgB,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,0BAA0B,WAAW,CAAC,YAAY,gCAAgC,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,mBAAmB,CACzB,SAAiB,EACjB,SAAiB,EACjB,YAAgC,EAChC,EAA4B,EAC5B,IAAgC;QAEhC,MAAM,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC;aAC1C,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;aAClG,IAAI,EAAE,CAAC;QAEV,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC;aACtB,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAC9E,CAAC;QAEF,MAAM,WAAW,GAAsD,EAAE,CAAC;QAE1E,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,0DAA0D;YAC1D,IAAI,YAAY,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;gBAChD,SAAS;YACX,CAAC;YAED,2DAA2D;YAC3D,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAE3D,qCAAqC;YACrC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBACjC,4EAA4E;gBAC5E,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;gBACpE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;oBACrC,WAAW,CAAC,IAAI,CAAC;wBACf,UAAU,EAAE,UAAU;wBACtB,UAAU,EAAE,UAAU;qBACvB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,UAAU,CAAC,MAAuB,EAAE,MAAuB;QACjE,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC;QAC3C,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC;QACrC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;QACjC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;QAC/B,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC;QAC7C,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC;QAC3C,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,mBAAmB,CAAC;QACzD,MAAM,CAAC,kBAAkB,IAAI,MAAM,CAAC,kBAAkB,CAAC;QACvD,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,iBAAiB,CAAC;QACrD,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC;QAC/C,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,gBAAgB,CAAC;QACnD,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC;QACjD,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC;QAC7C,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,gBAAgB,CAAC;QACnD,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,iBAAiB,CAAC;QACrD,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;IACvD,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
/**
|
|
3
|
+
* Dialect-aware migration scaffolder. Produces a Flyway-compatible filename
|
|
4
|
+
* and a starter body matching MJ's migration conventions (schema placeholder,
|
|
5
|
+
* consolidated ALTER TABLE, no __mj timestamp columns — CodeGen handles those).
|
|
6
|
+
*
|
|
7
|
+
* Filename format:
|
|
8
|
+
* T-SQL: V{YYYYMMDDHHMM}__v{version}.x__{description}.sql
|
|
9
|
+
* PG: V{YYYYMMDDHHMM}__v{version}.x__{description}.pg.sql
|
|
10
|
+
*/
|
|
11
|
+
export default class MigrateCreate extends Command {
|
|
12
|
+
static description: string;
|
|
13
|
+
static examples: string[];
|
|
14
|
+
static args: {
|
|
15
|
+
description: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
16
|
+
};
|
|
17
|
+
static flags: {
|
|
18
|
+
version: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
19
|
+
platform: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
20
|
+
dir: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
21
|
+
'x-x': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
22
|
+
};
|
|
23
|
+
run(): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* YYYYMMDDHHMM in the local timezone — matches existing MJ migration filenames.
|
|
26
|
+
*/
|
|
27
|
+
private timestamp;
|
|
28
|
+
/**
|
|
29
|
+
* Convert a free-form description to the PascalCase_With_Underscores format
|
|
30
|
+
* used throughout migrations/v5. Strips characters that aren't valid in a filename.
|
|
31
|
+
*/
|
|
32
|
+
private sanitizeDescription;
|
|
33
|
+
private defaultMigrationsDir;
|
|
34
|
+
/**
|
|
35
|
+
* Best-effort latest-version detection by scanning filenames in the target migrations dir.
|
|
36
|
+
* Returns undefined if the directory is empty or can't be read — caller falls back to "0.0".
|
|
37
|
+
*/
|
|
38
|
+
private detectLatestVersion;
|
|
39
|
+
private tsqlTemplate;
|
|
40
|
+
private pgTemplate;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=create.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/migrate/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAe,MAAM,aAAa,CAAC;AAKnD;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,OAAO;IAChD,MAAM,CAAC,WAAW,SAAqE;IAEvF,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,IAAI;;MAKT;IAEF,MAAM,CAAC,KAAK;;;;;MAiBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAmC1B;;OAEG;IACH,OAAO,CAAC,SAAS;IAYjB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,oBAAoB;IAK5B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,UAAU;CAmBnB"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { Command, Args, Flags } from '@oclif/core';
|
|
2
|
+
import { getValidatedConfig } from '../../config.js';
|
|
3
|
+
import * as fs from 'node:fs';
|
|
4
|
+
import * as path from 'node:path';
|
|
5
|
+
/**
|
|
6
|
+
* Dialect-aware migration scaffolder. Produces a Flyway-compatible filename
|
|
7
|
+
* and a starter body matching MJ's migration conventions (schema placeholder,
|
|
8
|
+
* consolidated ALTER TABLE, no __mj timestamp columns — CodeGen handles those).
|
|
9
|
+
*
|
|
10
|
+
* Filename format:
|
|
11
|
+
* T-SQL: V{YYYYMMDDHHMM}__v{version}.x__{description}.sql
|
|
12
|
+
* PG: V{YYYYMMDDHHMM}__v{version}.x__{description}.pg.sql
|
|
13
|
+
*/
|
|
14
|
+
export default class MigrateCreate extends Command {
|
|
15
|
+
static { this.description = 'Scaffold a new migration file for the current database platform'; }
|
|
16
|
+
static { this.examples = [
|
|
17
|
+
`<%= config.bin %> <%= command.id %> "Add FooID to Bar"`,
|
|
18
|
+
`<%= config.bin %> <%= command.id %> "Add FooID to Bar" --version 5.25 --platform postgresql`,
|
|
19
|
+
`<%= config.bin %> <%= command.id %> "Add FooID to Bar" --dir ./migrations/v5`,
|
|
20
|
+
]; }
|
|
21
|
+
static { this.args = {
|
|
22
|
+
description: Args.string({
|
|
23
|
+
description: 'Short description (will be converted to PascalCase with underscores)',
|
|
24
|
+
required: true,
|
|
25
|
+
}),
|
|
26
|
+
}; }
|
|
27
|
+
static { this.flags = {
|
|
28
|
+
version: Flags.string({
|
|
29
|
+
char: 'v',
|
|
30
|
+
description: 'Migration version tag, e.g. "5.25" (default: parsed from repo baseline or "0.0")',
|
|
31
|
+
}),
|
|
32
|
+
platform: Flags.string({
|
|
33
|
+
char: 'p',
|
|
34
|
+
description: 'Override platform: sqlserver | postgresql (default: config.dbPlatform)',
|
|
35
|
+
options: ['sqlserver', 'postgresql'],
|
|
36
|
+
}),
|
|
37
|
+
dir: Flags.string({
|
|
38
|
+
description: 'Output directory (default: ./migrations/v5 or ./migrations-pg/v5)',
|
|
39
|
+
}),
|
|
40
|
+
'x-x': Flags.boolean({
|
|
41
|
+
description: 'Use {version}.x.x suffix instead of {version}.x (e.g. 5.25.x instead of 5.25.x)',
|
|
42
|
+
default: false,
|
|
43
|
+
}),
|
|
44
|
+
}; }
|
|
45
|
+
async run() {
|
|
46
|
+
const { args, flags } = await this.parse(MigrateCreate);
|
|
47
|
+
const config = getValidatedConfig();
|
|
48
|
+
const platform = (flags.platform ?? config.dbPlatform ?? 'sqlserver');
|
|
49
|
+
const isPG = platform === 'postgresql';
|
|
50
|
+
const version = flags.version ?? this.detectLatestVersion(isPG) ?? '0.0';
|
|
51
|
+
const description = this.sanitizeDescription(args.description);
|
|
52
|
+
const timestamp = this.timestamp();
|
|
53
|
+
const suffix = isPG ? '.pg.sql' : '.sql';
|
|
54
|
+
const filename = `V${timestamp}__v${version}.x__${description}${suffix}`;
|
|
55
|
+
const outputDir = flags.dir ?? this.defaultMigrationsDir(isPG);
|
|
56
|
+
fs.mkdirSync(outputDir, { recursive: true });
|
|
57
|
+
const fullPath = path.join(outputDir, filename);
|
|
58
|
+
if (fs.existsSync(fullPath)) {
|
|
59
|
+
this.error(`Migration file already exists: ${fullPath}`);
|
|
60
|
+
}
|
|
61
|
+
const body = isPG ? this.pgTemplate(description, version) : this.tsqlTemplate(description, version);
|
|
62
|
+
fs.writeFileSync(fullPath, body, 'utf8');
|
|
63
|
+
this.log(`Created ${platform} migration:`);
|
|
64
|
+
this.log(` ${fullPath}`);
|
|
65
|
+
this.log('');
|
|
66
|
+
this.log('Next steps:');
|
|
67
|
+
this.log(' 1. Edit the file with your schema changes');
|
|
68
|
+
this.log(' 2. Run `mj migrate` to apply it');
|
|
69
|
+
if (!isPG) {
|
|
70
|
+
this.log(' 3. Run `mj sql-convert` (or mj migrate convert) to produce the PG counterpart');
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* YYYYMMDDHHMM in the local timezone — matches existing MJ migration filenames.
|
|
75
|
+
*/
|
|
76
|
+
timestamp() {
|
|
77
|
+
const now = new Date();
|
|
78
|
+
const pad = (n) => String(n).padStart(2, '0');
|
|
79
|
+
return (String(now.getFullYear()) +
|
|
80
|
+
pad(now.getMonth() + 1) +
|
|
81
|
+
pad(now.getDate()) +
|
|
82
|
+
pad(now.getHours()) +
|
|
83
|
+
pad(now.getMinutes()));
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Convert a free-form description to the PascalCase_With_Underscores format
|
|
87
|
+
* used throughout migrations/v5. Strips characters that aren't valid in a filename.
|
|
88
|
+
*/
|
|
89
|
+
sanitizeDescription(raw) {
|
|
90
|
+
return raw
|
|
91
|
+
.replace(/[^A-Za-z0-9 _-]/g, '')
|
|
92
|
+
.trim()
|
|
93
|
+
.split(/[\s_-]+/)
|
|
94
|
+
.filter(Boolean)
|
|
95
|
+
.map(w => w.charAt(0).toUpperCase() + w.slice(1))
|
|
96
|
+
.join('_');
|
|
97
|
+
}
|
|
98
|
+
defaultMigrationsDir(isPG) {
|
|
99
|
+
const root = isPG ? 'migrations-pg' : 'migrations';
|
|
100
|
+
return path.join(process.cwd(), root, 'v5');
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Best-effort latest-version detection by scanning filenames in the target migrations dir.
|
|
104
|
+
* Returns undefined if the directory is empty or can't be read — caller falls back to "0.0".
|
|
105
|
+
*/
|
|
106
|
+
detectLatestVersion(isPG) {
|
|
107
|
+
const dir = this.defaultMigrationsDir(isPG);
|
|
108
|
+
if (!fs.existsSync(dir))
|
|
109
|
+
return undefined;
|
|
110
|
+
try {
|
|
111
|
+
const entries = fs.readdirSync(dir);
|
|
112
|
+
const versionRe = /__v(\d+\.\d+(?:\.x)?)[._]/;
|
|
113
|
+
const versions = entries
|
|
114
|
+
.map(f => f.match(versionRe)?.[1])
|
|
115
|
+
.filter((v) => !!v)
|
|
116
|
+
.map(v => v.replace(/\.x$/, ''));
|
|
117
|
+
if (versions.length === 0)
|
|
118
|
+
return undefined;
|
|
119
|
+
versions.sort((a, b) => {
|
|
120
|
+
const [aMaj, aMin] = a.split('.').map(Number);
|
|
121
|
+
const [bMaj, bMin] = b.split('.').map(Number);
|
|
122
|
+
return aMaj !== bMaj ? aMaj - bMaj : aMin - bMin;
|
|
123
|
+
});
|
|
124
|
+
return versions[versions.length - 1];
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
return undefined;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
tsqlTemplate(description, version) {
|
|
131
|
+
const human = description.replace(/_/g, ' ');
|
|
132
|
+
return `-- ${human} (v${version}.x)
|
|
133
|
+
-- T-SQL migration for MemberJunction core schema.
|
|
134
|
+
--
|
|
135
|
+
-- Conventions (see /migrations/CLAUDE.md):
|
|
136
|
+
-- * Use \${flyway:defaultSchema} for the schema placeholder
|
|
137
|
+
-- * Use hardcoded UUIDs, never NEWID()
|
|
138
|
+
-- * Never insert __mj timestamp columns — CodeGen handles them
|
|
139
|
+
-- * Consolidate multiple ADD clauses into a single ALTER TABLE
|
|
140
|
+
-- * Add sp_addextendedproperty descriptions for every new column
|
|
141
|
+
|
|
142
|
+
-- Example:
|
|
143
|
+
-- ALTER TABLE \${flyway:defaultSchema}.MyTable ADD
|
|
144
|
+
-- NewColumn NVARCHAR(100) NULL;
|
|
145
|
+
--
|
|
146
|
+
-- EXEC sp_addextendedproperty
|
|
147
|
+
-- @name = N'MS_Description',
|
|
148
|
+
-- @value = N'Describe what this column does',
|
|
149
|
+
-- @level0type = N'SCHEMA', @level0name = N'\${flyway:defaultSchema}',
|
|
150
|
+
-- @level1type = N'TABLE', @level1name = N'MyTable',
|
|
151
|
+
-- @level2type = N'COLUMN', @level2name = N'NewColumn';
|
|
152
|
+
`;
|
|
153
|
+
}
|
|
154
|
+
pgTemplate(description, version) {
|
|
155
|
+
const human = description.replace(/_/g, ' ');
|
|
156
|
+
return `-- ${human} (v${version}.x)
|
|
157
|
+
-- PostgreSQL migration for MemberJunction core schema.
|
|
158
|
+
--
|
|
159
|
+
-- Conventions:
|
|
160
|
+
-- * Use \${flyway:defaultSchema} for the schema placeholder (resolved by Skyway)
|
|
161
|
+
-- * Use hardcoded UUIDs, never gen_random_uuid() in seed data
|
|
162
|
+
-- * Never insert __mj timestamp columns — CodeGen-installed triggers maintain them
|
|
163
|
+
-- * Use COMMENT ON COLUMN for descriptions
|
|
164
|
+
|
|
165
|
+
-- Example:
|
|
166
|
+
-- ALTER TABLE "\${flyway:defaultSchema}"."MyTable"
|
|
167
|
+
-- ADD COLUMN "NewColumn" VARCHAR(100) NULL;
|
|
168
|
+
--
|
|
169
|
+
-- COMMENT ON COLUMN "\${flyway:defaultSchema}"."MyTable"."NewColumn"
|
|
170
|
+
-- IS 'Describe what this column does';
|
|
171
|
+
`;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/migrate/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,OAAO;aACzC,gBAAW,GAAG,iEAAiE,CAAC;aAEhF,aAAQ,GAAG;QAChB,wDAAwD;QACxD,6FAA6F;QAC7F,8EAA8E;KAC/E,CAAC;aAEK,SAAI,GAAG;QACZ,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC;YACvB,WAAW,EAAE,sEAAsE;YACnF,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAC;aAEK,UAAK,GAAG;QACb,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,kFAAkF;SAChG,CAAC;QACF,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;YACrB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,wEAAwE;YACrF,OAAO,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC;SACrC,CAAC;QACF,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE,mEAAmE;SACjF,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,WAAW,EAAE,iFAAiF;YAC9F,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;QAEpC,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,IAAI,WAAW,CAA+B,CAAC;QACpG,MAAM,IAAI,GAAG,QAAQ,KAAK,YAAY,CAAC;QACvC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;QAEzE,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,SAAS,MAAM,OAAO,OAAO,WAAW,GAAG,MAAM,EAAE,CAAC;QAEzE,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC/D,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAEhD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,kCAAkC,QAAQ,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACpG,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAEzC,IAAI,CAAC,GAAG,CAAC,WAAW,QAAQ,aAAa,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACb,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACxB,IAAI,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QACxD,IAAI,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,GAAG,CAAC,iFAAiF,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED;;OAEG;IACK,SAAS;QACf,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACtD,OAAO,CACL,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YACzB,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACvB,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAClB,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CACtB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,mBAAmB,CAAC,GAAW;QACrC,OAAO,GAAG;aACP,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;aAC/B,IAAI,EAAE;aACN,KAAK,CAAC,SAAS,CAAC;aAChB,MAAM,CAAC,OAAO,CAAC;aACf,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAChD,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAEO,oBAAoB,CAAC,IAAa;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACK,mBAAmB,CAAC,IAAa;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,SAAS,GAAG,2BAA2B,CAAC;YAC9C,MAAM,QAAQ,GAAG,OAAO;iBACrB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;iBACjC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;YACnC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAC;YAC5C,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACrB,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC9C,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC9C,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;YACnD,CAAC,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,WAAmB,EAAE,OAAe;QACvD,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7C,OAAO,MAAM,KAAK,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;CAoBlC,CAAC;IACA,CAAC;IAEO,UAAU,CAAC,WAAmB,EAAE,OAAe;QACrD,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7C,OAAO,MAAM,KAAK,MAAM,OAAO;;;;;;;;;;;;;;;CAelC,CAAC;IACA,CAAC"}
|
|
@@ -17,6 +17,8 @@ export default class Pull extends Command {
|
|
|
17
17
|
'preserve-fields': import("@oclif/core/lib/interfaces").OptionFlag<string[], import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
18
18
|
'exclude-fields': import("@oclif/core/lib/interfaces").OptionFlag<string[], import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
19
19
|
'target-dir': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
20
|
+
incremental: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
21
|
+
since: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
20
22
|
};
|
|
21
23
|
run(): Promise<void>;
|
|
22
24
|
private findEntityDirectories;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/pull.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAO7C,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,OAAO;IACvC,MAAM,CAAC,WAAW,SAAgD;IAElE,MAAM,CAAC,QAAQ,WAOb;IAEF,MAAM,CAAC,KAAK
|
|
1
|
+
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/pull.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAO7C,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,OAAO;IACvC,MAAM,CAAC,WAAW,SAAgD;IAElE,MAAM,CAAC,QAAQ,WAOb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;MA0BV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YA8MZ,qBAAqB;IA+BnC,OAAO,CAAC,iCAAiC;CAwB1C"}
|
|
@@ -32,7 +32,14 @@ export default class Pull extends Command {
|
|
|
32
32
|
'backup-directory': Flags.string({ description: 'Custom backup directory (default: .backups)' }),
|
|
33
33
|
'preserve-fields': Flags.string({ description: 'Comma-separated list of fields to preserve during updates', multiple: true }),
|
|
34
34
|
'exclude-fields': Flags.string({ description: 'Comma-separated list of fields to exclude from pull', multiple: true }),
|
|
35
|
-
'target-dir': Flags.string({ description: 'Specific target directory (overrides auto-discovery)' })
|
|
35
|
+
'target-dir': Flags.string({ description: 'Specific target directory (overrides auto-discovery)' }),
|
|
36
|
+
incremental: Flags.boolean({
|
|
37
|
+
description: 'Only pull records updated since last successful pull',
|
|
38
|
+
default: false
|
|
39
|
+
}),
|
|
40
|
+
since: Flags.string({
|
|
41
|
+
description: 'Only pull records updated after this ISO 8601 timestamp (e.g., 2026-04-07T10:00:00Z)'
|
|
42
|
+
}),
|
|
36
43
|
}; }
|
|
37
44
|
async run() {
|
|
38
45
|
const { PullService, ValidationService, FormattingService, loadMJConfig, initializeProvider, getSyncEngine, getSystemUser, resetSyncEngine, configManager, loadEntityConfig, FileBackupManager, } = await import('@memberjunction/metadata-sync');
|
|
@@ -111,8 +118,14 @@ export default class Pull extends Command {
|
|
|
111
118
|
backupManager = new FileBackupManager();
|
|
112
119
|
await backupManager.initialize();
|
|
113
120
|
}
|
|
114
|
-
// Create pull service
|
|
121
|
+
// Create pull service with optional state manager for incremental sync
|
|
115
122
|
const pullService = new PullService(syncEngine, getSystemUser());
|
|
123
|
+
if (flags.incremental || flags.since) {
|
|
124
|
+
const { SyncStateManager } = await import('@memberjunction/metadata-sync');
|
|
125
|
+
const stateManager = new SyncStateManager(targetDir);
|
|
126
|
+
await stateManager.load();
|
|
127
|
+
pullService.setStateManager(stateManager);
|
|
128
|
+
}
|
|
116
129
|
// Build pull options - only include CLI flags that were explicitly provided
|
|
117
130
|
const pullOptions = {
|
|
118
131
|
entity: flags.entity,
|
|
@@ -140,6 +153,10 @@ export default class Pull extends Command {
|
|
|
140
153
|
pullOptions.preserveFields = flags['preserve-fields'];
|
|
141
154
|
if (flags['exclude-fields'] !== undefined)
|
|
142
155
|
pullOptions.excludeFields = flags['exclude-fields'];
|
|
156
|
+
if (flags.incremental)
|
|
157
|
+
pullOptions.incremental = flags.incremental;
|
|
158
|
+
if (flags.since !== undefined)
|
|
159
|
+
pullOptions.since = flags.since;
|
|
143
160
|
await pullService.pull(pullOptions, {
|
|
144
161
|
onProgress: (message) => {
|
|
145
162
|
spinner.start(message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../../src/commands/sync/pull.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../../src/commands/sync/pull.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,OAAO;aAChC,gBAAW,GAAG,4CAA4C,CAAC;aAE3D,aAAQ,GAAG;QAChB,+DAA+D;QAC/D,2GAA2G;QAC3G,yFAAyF;QACzF,oGAAoG;QACpG,8EAA8E;QAC9E,wGAAwG;KACzG,CAAC;aAEK,UAAK,GAAG;QACb,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC5E,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,gDAAgD,EAAE,CAAC;QACvF,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,oDAAoD,EAAE,CAAC;QAC/F,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,+DAA+D,EAAE,CAAC;QAC5G,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC;QAC1E,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC;QAC5E,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,qCAAqC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACvG,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,gDAAgD,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC7G,sBAAsB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,sCAAsC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC7G,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC;YAC7B,WAAW,EAAE,4BAA4B;YACzC,OAAO,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC;YACvC,OAAO,EAAE,OAAO;SACjB,CAAC;QACF,kBAAkB,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,6CAA6C,EAAE,CAAC;QAChG,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,2DAA2D,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC7H,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,qDAAqD,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACtH,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,sDAAsD,EAAE,CAAC;QACnG,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC;YACzB,WAAW,EAAE,sDAAsD;YACnE,OAAO,EAAE,KAAK;SACf,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;YAClB,WAAW,EAAE,sFAAsF;SACpG,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EACJ,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EACjD,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAC9D,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,GACpE,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;QAElD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;QACtB,IAAI,aAAa,GAAkD,IAAI,CAAC;QAExE,IAAI,CAAC;YACH,uBAAuB;YACvB,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YACvC,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,IAAI,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAC;YAClF,CAAC;YAED,8CAA8C;YAC9C,OAAO,CAAC,IAAI,EAAE,CAAC;YAEf,2BAA2B;YAC3B,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAEnC,4BAA4B;YAC5B,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,aAAa,EAAE,CAAC,CAAC;YAExD,oCAAoC;YACpC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,CAAC;YAED,0BAA0B;YAC1B,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC;YAE1G,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,KAAK,CAAC,oCAAoC,KAAK,CAAC,MAAM,uEAAuE,CAAC,CAAC;YACtI,CAAC;YAED,0BAA0B;YAC1B,IAAI,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;YACpC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACnC,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;gBACnC,CAAC;qBAAM,CAAC;oBACN,SAAS,GAAG,MAAM,MAAM,CAAC;wBACvB,OAAO,EAAE,0CAA0C,KAAK,CAAC,MAAM,sBAAsB;wBACrF,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;qBACnE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,qDAAqD;YACrD,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBAChD,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBACpE,MAAM,SAAS,GAAG,IAAI,iBAAiB,EAAE,CAAC;gBAE1C,MAAM,gBAAgB,GAAG,MAAM,SAAS,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBACtE,OAAO,CAAC,IAAI,EAAE,CAAC;gBAEf,IAAI,CAAC,gBAAgB,CAAC,OAAO,IAAI,gBAAgB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtE,0BAA0B;oBAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;oBAEnF,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;wBAC9B,uBAAuB;wBACvB,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC;4BAClC,OAAO,EAAE,gEAAgE;4BACzE,OAAO,EAAE;gCACP,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,KAAK,EAAE;gCAClD,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,IAAI,EAAE;6BAC9C;4BACD,OAAO,EAAE,KAAK;yBACf,CAAC,CAAC;wBAEH,IAAI,CAAC,cAAc,EAAE,CAAC;4BACpB,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;wBACzD,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;YAED,mDAAmD;YACnD,IAAI,KAAK,CAAC,sBAAsB,CAAC,EAAE,CAAC;gBAClC,aAAa,GAAG,IAAI,iBAAiB,EAAE,CAAC;gBACxC,MAAM,aAAa,CAAC,UAAU,EAAE,CAAC;YACnC,CAAC;YAED,uEAAuE;YACvE,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;YACjE,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBACrC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;gBAC3E,MAAM,YAAY,GAAG,IAAI,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBACrD,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;gBAC1B,WAAW,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YAC5C,CAAC;YAED,4EAA4E;YAC5E,MAAM,WAAW,GAAQ;gBACvB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,SAAS;gBACT,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;gBACxB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC;aACjC,CAAC;YAEF,mFAAmF;YACnF,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;gBAAE,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAClE,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,SAAS;gBAAE,WAAW,CAAC,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;YACnF,IAAI,KAAK,CAAC,iBAAiB,CAAC,KAAK,SAAS;gBAAE,WAAW,CAAC,qBAAqB,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACzG,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,SAAS;gBAAE,WAAW,CAAC,uBAAuB,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;YACjG,IAAI,KAAK,CAAC,sBAAsB,CAAC,KAAK,SAAS;gBAAE,WAAW,CAAC,kBAAkB,GAAG,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAChH,IAAI,KAAK,CAAC,gBAAgB,CAAC,KAAK,SAAS;gBAAE,WAAW,CAAC,aAAa,GAAG,KAAK,CAAC,gBAAgB,CAAmC,CAAC;YACjI,IAAI,KAAK,CAAC,kBAAkB,CAAC,KAAK,SAAS;gBAAE,WAAW,CAAC,eAAe,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACrG,IAAI,KAAK,CAAC,iBAAiB,CAAC,KAAK,SAAS;gBAAE,WAAW,CAAC,cAAc,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAClG,IAAI,KAAK,CAAC,gBAAgB,CAAC,KAAK,SAAS;gBAAE,WAAW,CAAC,aAAa,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC/F,IAAI,KAAK,CAAC,WAAW;gBAAE,WAAW,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;YACnE,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;gBAAE,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAE/D,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;gBAClC,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE;oBACtB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACzB,CAAC;gBACD,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;oBACrB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC3B,CAAC;gBACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;oBACnB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACxB,CAAC;gBACD,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;oBAClB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACrB,CAAC;gBACD,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE;oBACjB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACpB,CAAC;aACF,CAAC,CAAC;YAEH,8BAA8B;YAC9B,IAAI,aAAa,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvC,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC;gBAC9B,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAClB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;YAED,0DAA0D;YAC1D,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,WAAW,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;oBAC/D,MAAM,WAAW,CAAC,kBAAkB,EAAE,CAAC;oBACvC,IAAI,KAAK,CAAC,OAAO,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;wBACrC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,WAAW,0BAA0B,CAAC,CAAC,CAAC;oBAC/E,CAAC;gBACH,CAAC;gBAAC,OAAO,YAAY,EAAE,CAAC;oBACtB,IAAI,CAAC,IAAI,CAAC,8CAA8C,YAAY,EAAE,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YAC9C,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAE5B,4BAA4B;YAC5B,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC;oBACH,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;oBAC/B,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;wBAClB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC;oBACtD,CAAC;gBACH,CAAC;gBAAC,OAAO,aAAa,EAAE,CAAC;oBACvB,IAAI,CAAC,IAAI,CAAC,oCAAoC,aAAa,EAAE,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;YAED,yBAAyB;YACzB,IAAI,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YACzC,IAAI,CAAC,GAAG,CAAC,eAAe,KAAK,EAAE,WAAW,EAAE,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,GAAG,CAAC,kBAAkB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAErF,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC1C,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBAC3B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;YAED,sBAAsB;YACtB,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,wBAAwB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAClD,IAAI,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC,CAAC;YACzD,IAAI,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC,CAAC;YAEhD,IAAI,CAAC,KAAK,CAAC,KAAc,CAAC,CAAC;QAC7B,CAAC;gBAAS,CAAC;YACT,mBAAmB;YACnB,eAAe,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,UAAkB,EAClB,SAAuC,EACvC,UAA+D;QAE/D,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,SAAS,CAAC,cAAc,EAAE,CAAC;YAE9C,kEAAkE;YAClE,MAAM,OAAO,GAAG,IAAI,CAAC,iCAAiC,CAAC,UAAU,CAAC,CAAC;YAEnE,qDAAqD;YACrD,MAAM,UAAU,GAAa,EAAE,CAAC;YAEhC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;oBACrC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;wBAC3C,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,IAAI,CAAC,sBAAsB,GAAG,4BAA4B,KAAK,GAAG,CAAC,CAAC;gBAC3E,CAAC;YACH,CAAC;YAED,OAAO,UAAU,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,sCAAsC,KAAK,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAEO,iCAAiC,CAAC,GAAW;QACnD,MAAM,WAAW,GAAa,EAAE,CAAC;QAEjC,IAAI,CAAC;YACH,+CAA+C;YAC/C,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;YACvD,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBAClC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC;YAED,oCAAoC;YACpC,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC7C,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iCAAiC,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,iCAAiC;QACnC,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC"}
|
|
@@ -12,6 +12,7 @@ export default class Push extends Command {
|
|
|
12
12
|
'parallel-batch-size': import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
13
13
|
include: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
14
14
|
exclude: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
15
|
+
incremental: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
15
16
|
};
|
|
16
17
|
run(): Promise<void>;
|
|
17
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/push.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAM7C,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,OAAO;IACvC,MAAM,CAAC,WAAW,SAA6C;IAE/D,MAAM,CAAC,QAAQ,WAKb;IAEF,MAAM,CAAC,KAAK
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/push.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAM7C,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,OAAO;IACvC,MAAM,CAAC,WAAW,SAA6C;IAE/D,MAAM,CAAC,QAAQ,WAKb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;MA4BV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAkP3B"}
|