@memberjunction/cli 5.30.1 → 5.32.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.
@@ -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":"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"}
@@ -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":"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"}
@@ -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;;;;;;;;;;;;;;;MAmBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YAsMZ,qBAAqB;IA+BnC,OAAO,CAAC,iCAAiC;CAwB1C"}
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 and execute
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":"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"}
@@ -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;;;;;;;;;;MAwBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA0N3B"}
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"}