@schemalens/cli 0.5.0 → 0.7.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/build.js +120 -50
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/upgrade.d.ts +5 -0
- package/dist/commands/upgrade.js +190 -0
- package/dist/commands/upgrade.js.map +1 -0
- package/dist/index.js +17 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/pg-mem-introspector.d.ts +18 -0
- package/dist/lib/pg-mem-introspector.js +649 -0
- package/dist/lib/pg-mem-introspector.js.map +1 -0
- package/dist/lib/sql-ast-parser.d.ts +28 -0
- package/dist/lib/sql-ast-parser.js +508 -0
- package/dist/lib/sql-ast-parser.js.map +1 -0
- package/package.json +4 -2
package/dist/commands/build.js
CHANGED
|
@@ -1,4 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
37
|
};
|
|
@@ -44,14 +77,7 @@ function resolveConnectionString(opts) {
|
|
|
44
77
|
return opts.db;
|
|
45
78
|
if (process.env.DATABASE_URL)
|
|
46
79
|
return process.env.DATABASE_URL;
|
|
47
|
-
|
|
48
|
-
'Provide one of:\n' +
|
|
49
|
-
' --db postgresql://user:pass@localhost:5432/mydb\n' +
|
|
50
|
-
' DATABASE_URL=postgresql://... schemalens build ...\n\n' +
|
|
51
|
-
'The target database should be empty (or a dedicated scratch/dev database).\n' +
|
|
52
|
-
'SchemaLens will apply your migrations to it, then introspect the result.\n\n' +
|
|
53
|
-
'Tip: create a blank local database with:\n' +
|
|
54
|
-
' createdb myapp_schema_scratch');
|
|
80
|
+
return null;
|
|
55
81
|
}
|
|
56
82
|
async function buildCommand(opts) {
|
|
57
83
|
console.log(chalk_1.default.bold(`\nSchemaLens Build — env: ${chalk_1.default.cyan(opts.env)}\n`));
|
|
@@ -60,15 +86,63 @@ async function buildCommand(opts) {
|
|
|
60
86
|
console.log(chalk_1.default.dim(` migrations: ${migrationsDir}`));
|
|
61
87
|
// 1. Discover migration files
|
|
62
88
|
const allFiles = getMigrationFiles(migrationsDir);
|
|
63
|
-
// 2.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
89
|
+
// 2. Branch: real DB vs in-memory
|
|
90
|
+
let snapshot;
|
|
91
|
+
if (connectionString) {
|
|
92
|
+
// Real database path: track migration state, only apply unapplied
|
|
93
|
+
const state = loadMigrationState();
|
|
94
|
+
const unapplied = allFiles.filter(f => !state.applied.includes(f));
|
|
95
|
+
if (unapplied.length === 0) {
|
|
96
|
+
console.log(chalk_1.default.dim(`\n All ${allFiles.length} migration(s) already applied — schema files are up to date.\n`));
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
console.log(chalk_1.default.dim(` ${allFiles.length} migration(s) total, ${unapplied.length} to apply\n`));
|
|
100
|
+
snapshot = await buildWithRealDb(connectionString, migrationsDir, unapplied, state);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
// In-memory path: apply all migrations every time (pg-mem starts fresh)
|
|
104
|
+
console.log(chalk_1.default.yellow(` No database connection — using in-memory PostgreSQL (pg-mem)`));
|
|
105
|
+
console.log(chalk_1.default.dim(` ${allFiles.length} migration(s) to apply in-memory\n`));
|
|
106
|
+
snapshot = await buildWithPgMem(migrationsDir, allFiles);
|
|
107
|
+
}
|
|
108
|
+
// 3. Write schema files
|
|
109
|
+
console.log(chalk_1.default.dim(` ${snapshot.tables.length} tables, ` +
|
|
110
|
+
`${snapshot.views.length} views, ` +
|
|
111
|
+
`${snapshot.functions.length} functions, ` +
|
|
112
|
+
`${snapshot.enums.length} enums, ` +
|
|
113
|
+
`${snapshot.extensions.length} extensions`));
|
|
114
|
+
const writeSpinner = (0, ora_1.default)('Writing schema files...').start();
|
|
115
|
+
const result = (0, writer_1.writeSchemaFiles)(snapshot, opts.env);
|
|
116
|
+
writeSpinner.succeed(chalk_1.default.green('Schema files written'));
|
|
117
|
+
// 4. Summary
|
|
118
|
+
console.log('');
|
|
119
|
+
if (result.created.length > 0) {
|
|
120
|
+
console.log(chalk_1.default.green.bold(` + ${result.created.length} created`));
|
|
121
|
+
for (const f of result.created) {
|
|
122
|
+
console.log(chalk_1.default.green(` + ${f}`));
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
if (result.updated.length > 0) {
|
|
126
|
+
console.log(chalk_1.default.yellow.bold(` ~ ${result.updated.length} updated`));
|
|
127
|
+
for (const f of result.updated) {
|
|
128
|
+
console.log(chalk_1.default.yellow(` ~ ${f}`));
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if (result.unchanged.length > 0) {
|
|
132
|
+
console.log(chalk_1.default.dim(` = ${result.unchanged.length} unchanged`));
|
|
133
|
+
}
|
|
134
|
+
const total = result.created.length + result.updated.length + result.unchanged.length;
|
|
135
|
+
console.log(chalk_1.default.bold(`\n Total: ${total} schema file(s)\n`));
|
|
136
|
+
if (connectionString) {
|
|
137
|
+
console.log(chalk_1.default.dim(` Migration state saved → ${MIGRATIONS_LOCK_FILE}\n`));
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
console.log(chalk_1.default.dim(` In-memory mode: tables/columns/constraints/indexes/enums captured via pg-mem;\n` +
|
|
141
|
+
` functions/triggers/policies/views/extensions extracted via SQL AST parser.\n` +
|
|
142
|
+
` Provide --db or DATABASE_URL for full schema introspection.\n`));
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
async function buildWithRealDb(connectionString, migrationsDir, unapplied, state) {
|
|
72
146
|
const isLocal = connectionString.includes('localhost') ||
|
|
73
147
|
connectionString.includes('127.0.0.1');
|
|
74
148
|
const pool = new pg_1.Pool({
|
|
@@ -98,51 +172,47 @@ async function buildCommand(opts) {
|
|
|
98
172
|
for (const f of unapplied) {
|
|
99
173
|
console.log(chalk_1.default.green(` + ${f}`));
|
|
100
174
|
}
|
|
101
|
-
//
|
|
175
|
+
// Persist migration state before introspecting
|
|
102
176
|
saveMigrationState(state);
|
|
103
|
-
//
|
|
177
|
+
// Introspect the resulting schema
|
|
104
178
|
const introspectSpinner = (0, ora_1.default)('Introspecting schema...').start();
|
|
105
|
-
let snapshot;
|
|
106
179
|
try {
|
|
107
|
-
snapshot = await (0, introspector_1.introspectSchema)(connectionString);
|
|
180
|
+
const snapshot = await (0, introspector_1.introspectSchema)(connectionString);
|
|
108
181
|
introspectSpinner.succeed(chalk_1.default.green('Schema introspected'));
|
|
182
|
+
return snapshot;
|
|
109
183
|
}
|
|
110
184
|
catch (err) {
|
|
111
185
|
introspectSpinner.fail(chalk_1.default.red('Failed to introspect schema'));
|
|
112
186
|
throw err;
|
|
113
187
|
}
|
|
114
|
-
console.log(chalk_1.default.dim(` ${snapshot.tables.length} tables, ` +
|
|
115
|
-
`${snapshot.views.length} views, ` +
|
|
116
|
-
`${snapshot.functions.length} functions, ` +
|
|
117
|
-
`${snapshot.enums.length} enums, ` +
|
|
118
|
-
`${snapshot.extensions.length} extensions`));
|
|
119
|
-
// 6. Write schema files
|
|
120
|
-
const writeSpinner = (0, ora_1.default)('Writing schema files...').start();
|
|
121
|
-
const result = (0, writer_1.writeSchemaFiles)(snapshot, opts.env);
|
|
122
|
-
writeSpinner.succeed(chalk_1.default.green('Schema files written'));
|
|
123
|
-
// 7. Summary
|
|
124
|
-
console.log('');
|
|
125
|
-
if (result.created.length > 0) {
|
|
126
|
-
console.log(chalk_1.default.green.bold(` + ${result.created.length} created`));
|
|
127
|
-
for (const f of result.created) {
|
|
128
|
-
console.log(chalk_1.default.green(` + ${f}`));
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
if (result.updated.length > 0) {
|
|
132
|
-
console.log(chalk_1.default.yellow.bold(` ~ ${result.updated.length} updated`));
|
|
133
|
-
for (const f of result.updated) {
|
|
134
|
-
console.log(chalk_1.default.yellow(` ~ ${f}`));
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
if (result.unchanged.length > 0) {
|
|
138
|
-
console.log(chalk_1.default.dim(` = ${result.unchanged.length} unchanged`));
|
|
139
|
-
}
|
|
140
|
-
const total = result.created.length + result.updated.length + result.unchanged.length;
|
|
141
|
-
console.log(chalk_1.default.bold(`\n Total: ${total} schema file(s)\n`));
|
|
142
|
-
console.log(chalk_1.default.dim(` Migration state saved → ${MIGRATIONS_LOCK_FILE}\n`));
|
|
143
188
|
}
|
|
144
189
|
finally {
|
|
145
190
|
await pool.end();
|
|
146
191
|
}
|
|
147
192
|
}
|
|
193
|
+
async function buildWithPgMem(migrationsDir, allFiles) {
|
|
194
|
+
// Lazy import: only load pg-mem when actually needed
|
|
195
|
+
const { introspectFromMigrations } = await Promise.resolve().then(() => __importStar(require('../lib/pg-mem-introspector')));
|
|
196
|
+
const migrations = allFiles.map(filename => ({
|
|
197
|
+
filename,
|
|
198
|
+
sql: fs_1.default.readFileSync(path_1.default.join(migrationsDir, filename), 'utf-8'),
|
|
199
|
+
}));
|
|
200
|
+
const applySpinner = (0, ora_1.default)(`Applying ${allFiles.length} migration(s) in-memory...`).start();
|
|
201
|
+
let result;
|
|
202
|
+
try {
|
|
203
|
+
result = await introspectFromMigrations(migrations);
|
|
204
|
+
applySpinner.succeed(chalk_1.default.green(`Applied ${allFiles.length} migration(s) in-memory`));
|
|
205
|
+
}
|
|
206
|
+
catch (err) {
|
|
207
|
+
applySpinner.fail(chalk_1.default.red('In-memory build failed'));
|
|
208
|
+
throw err;
|
|
209
|
+
}
|
|
210
|
+
for (const f of allFiles) {
|
|
211
|
+
console.log(chalk_1.default.green(` + ${f}`));
|
|
212
|
+
}
|
|
213
|
+
if (result.skippedStatements > 0) {
|
|
214
|
+
console.log(chalk_1.default.dim(` (${result.skippedStatements} statement(s) skipped — unsupported by pg-mem)`));
|
|
215
|
+
}
|
|
216
|
+
return result.snapshot;
|
|
217
|
+
}
|
|
148
218
|
//# sourceMappingURL=build.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.upgradeCommand = upgradeCommand;
|
|
7
|
+
const fs_1 = require("fs");
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
const child_process_1 = require("child_process");
|
|
10
|
+
const https_1 = __importDefault(require("https"));
|
|
11
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
12
|
+
const ora_1 = __importDefault(require("ora"));
|
|
13
|
+
function readOwnPackageJson() {
|
|
14
|
+
const pkgPath = (0, path_1.join)(__dirname, '..', '..', 'package.json');
|
|
15
|
+
return JSON.parse((0, fs_1.readFileSync)(pkgPath, 'utf-8'));
|
|
16
|
+
}
|
|
17
|
+
function fetchLatestVersion(pkgName) {
|
|
18
|
+
return new Promise((resolve, reject) => {
|
|
19
|
+
const url = `https://registry.npmjs.org/${pkgName}/latest`;
|
|
20
|
+
const req = https_1.default.get(url, {
|
|
21
|
+
headers: {
|
|
22
|
+
accept: 'application/json',
|
|
23
|
+
'user-agent': 'schemalens-cli-upgrade',
|
|
24
|
+
},
|
|
25
|
+
timeout: 10_000,
|
|
26
|
+
}, (res) => {
|
|
27
|
+
if (res.statusCode && (res.statusCode < 200 || res.statusCode >= 300)) {
|
|
28
|
+
res.resume();
|
|
29
|
+
reject(new Error(`Registry responded with HTTP ${res.statusCode}`));
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
let body = '';
|
|
33
|
+
res.setEncoding('utf-8');
|
|
34
|
+
res.on('data', (chunk) => {
|
|
35
|
+
body += chunk;
|
|
36
|
+
});
|
|
37
|
+
res.on('end', () => {
|
|
38
|
+
try {
|
|
39
|
+
const parsed = JSON.parse(body);
|
|
40
|
+
if (!parsed.version) {
|
|
41
|
+
reject(new Error('Registry response missing "version" field'));
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
resolve(parsed.version);
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
reject(new Error(`Failed to parse registry response: ${err.message}`));
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
req.on('timeout', () => {
|
|
52
|
+
req.destroy(new Error('Request to npm registry timed out'));
|
|
53
|
+
});
|
|
54
|
+
req.on('error', (err) => reject(err));
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
function isNewer(latest, current) {
|
|
58
|
+
const parse = (v) => v.replace(/^v/, '').split(/[.\-+]/).slice(0, 3).map((n) => Number(n) || 0);
|
|
59
|
+
const [a, b, c] = parse(latest);
|
|
60
|
+
const [x, y, z] = parse(current);
|
|
61
|
+
if (a !== x)
|
|
62
|
+
return a > x;
|
|
63
|
+
if (b !== y)
|
|
64
|
+
return b > y;
|
|
65
|
+
return c > z;
|
|
66
|
+
}
|
|
67
|
+
function detectPackageManager() {
|
|
68
|
+
// __dirname when running the installed CLI is .../<manager-prefix>/.../@schemalens/cli/dist
|
|
69
|
+
const dir = __dirname.toLowerCase();
|
|
70
|
+
if (dir.includes(`${require('path').sep}.bun${require('path').sep}`) || dir.includes('/.bun/')) {
|
|
71
|
+
return 'bun';
|
|
72
|
+
}
|
|
73
|
+
if (dir.includes('pnpm'))
|
|
74
|
+
return 'pnpm';
|
|
75
|
+
if (dir.includes(`${require('path').sep}yarn${require('path').sep}`) || dir.includes('/yarn/')) {
|
|
76
|
+
return 'yarn';
|
|
77
|
+
}
|
|
78
|
+
return 'npm';
|
|
79
|
+
}
|
|
80
|
+
function isLocalInstall() {
|
|
81
|
+
// Heuristic: if we're running from a project's local node_modules (not a global prefix),
|
|
82
|
+
// warn the user. Global installs live under npm/pnpm/yarn/bun prefix dirs, not a project dir.
|
|
83
|
+
const dir = __dirname;
|
|
84
|
+
// A local install would typically have a parent chain like <project>/node_modules/@schemalens/cli/dist
|
|
85
|
+
// and NOT be inside a "global" or manager-prefix-looking path segment.
|
|
86
|
+
const looksGlobal = /[\\/](npm|pnpm|yarn|bun|\.bun|\.volta|\.nvm|\.asdf|\.fnm|global)[\\/]/i.test(dir) ||
|
|
87
|
+
/[\\/]lib[\\/]node_modules[\\/]/.test(dir) ||
|
|
88
|
+
/[\\/]nodejs[\\/]node_modules[\\/]/.test(dir);
|
|
89
|
+
return !looksGlobal && /[\\/]node_modules[\\/]/.test(dir);
|
|
90
|
+
}
|
|
91
|
+
function buildUpgradeArgs(pm, pkgName) {
|
|
92
|
+
const target = `${pkgName}@latest`;
|
|
93
|
+
switch (pm) {
|
|
94
|
+
case 'pnpm':
|
|
95
|
+
return { cmd: 'pnpm', args: ['add', '-g', target] };
|
|
96
|
+
case 'yarn':
|
|
97
|
+
return { cmd: 'yarn', args: ['global', 'add', target] };
|
|
98
|
+
case 'bun':
|
|
99
|
+
return { cmd: 'bun', args: ['add', '-g', target] };
|
|
100
|
+
case 'npm':
|
|
101
|
+
default:
|
|
102
|
+
return { cmd: 'npm', args: ['install', '-g', target] };
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
function runInstall(cmd, args) {
|
|
106
|
+
return new Promise((resolve, reject) => {
|
|
107
|
+
const child = (0, child_process_1.spawn)(cmd, args, { stdio: 'inherit', shell: process.platform === 'win32' });
|
|
108
|
+
child.on('error', (err) => reject(err));
|
|
109
|
+
child.on('exit', (code) => resolve(code ?? 1));
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
function validatePm(value) {
|
|
113
|
+
if (!value)
|
|
114
|
+
return undefined;
|
|
115
|
+
const v = value.toLowerCase();
|
|
116
|
+
if (v === 'npm' || v === 'pnpm' || v === 'yarn' || v === 'bun')
|
|
117
|
+
return v;
|
|
118
|
+
throw new Error(`Unknown package manager "${value}". Expected one of: npm, pnpm, yarn, bun.`);
|
|
119
|
+
}
|
|
120
|
+
async function upgradeCommand(opts = {}) {
|
|
121
|
+
const pkg = readOwnPackageJson();
|
|
122
|
+
const currentVersion = pkg.version;
|
|
123
|
+
const pkgName = pkg.name;
|
|
124
|
+
console.log();
|
|
125
|
+
console.log(chalk_1.default.bold(` ${pkgName}`) + chalk_1.default.dim(` v${currentVersion}`));
|
|
126
|
+
console.log();
|
|
127
|
+
const spinner = (0, ora_1.default)('Checking for updates…').start();
|
|
128
|
+
let latestVersion;
|
|
129
|
+
try {
|
|
130
|
+
latestVersion = await fetchLatestVersion(pkgName);
|
|
131
|
+
spinner.succeed(`Latest version: ${chalk_1.default.bold('v' + latestVersion)}`);
|
|
132
|
+
}
|
|
133
|
+
catch (err) {
|
|
134
|
+
spinner.fail(`Failed to check registry: ${err.message}`);
|
|
135
|
+
console.log();
|
|
136
|
+
console.log(chalk_1.default.dim(' You can upgrade manually with:'));
|
|
137
|
+
console.log(chalk_1.default.dim(` npm install -g ${pkgName}@latest`));
|
|
138
|
+
console.log();
|
|
139
|
+
process.exit(1);
|
|
140
|
+
}
|
|
141
|
+
if (!isNewer(latestVersion, currentVersion)) {
|
|
142
|
+
console.log();
|
|
143
|
+
console.log(chalk_1.default.green(` ✓ ${pkgName} is already up to date (v${currentVersion})`));
|
|
144
|
+
console.log();
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
const forced = validatePm(opts.pm);
|
|
148
|
+
const pm = forced ?? detectPackageManager();
|
|
149
|
+
const { cmd, args } = buildUpgradeArgs(pm, pkgName);
|
|
150
|
+
console.log();
|
|
151
|
+
console.log(chalk_1.default.bold(` Upgrade available: `) +
|
|
152
|
+
chalk_1.default.yellow(`v${currentVersion}`) +
|
|
153
|
+
chalk_1.default.dim(' → ') +
|
|
154
|
+
chalk_1.default.green(`v${latestVersion}`));
|
|
155
|
+
console.log(chalk_1.default.dim(` Package manager: ${pm}${forced ? ' (forced)' : ' (detected)'}`));
|
|
156
|
+
console.log(chalk_1.default.dim(` Command: ${cmd} ${args.join(' ')}`));
|
|
157
|
+
console.log();
|
|
158
|
+
if (isLocalInstall() && !forced) {
|
|
159
|
+
console.log(chalk_1.default.yellow(' ⚠ It looks like schemalens is installed locally in this project, not globally.'));
|
|
160
|
+
console.log(chalk_1.default.dim(` Consider running: npm update ${pkgName} (inside this project)`));
|
|
161
|
+
console.log();
|
|
162
|
+
}
|
|
163
|
+
if (opts.dryRun) {
|
|
164
|
+
console.log(chalk_1.default.dim(' Dry run — not executing install.'));
|
|
165
|
+
console.log();
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
let exitCode;
|
|
169
|
+
try {
|
|
170
|
+
exitCode = await runInstall(cmd, args);
|
|
171
|
+
}
|
|
172
|
+
catch (err) {
|
|
173
|
+
console.log();
|
|
174
|
+
console.error(chalk_1.default.red(` Failed to run ${cmd}: ${err.message}`));
|
|
175
|
+
console.log(chalk_1.default.dim(` Try running manually: ${cmd} ${args.join(' ')}`));
|
|
176
|
+
console.log();
|
|
177
|
+
process.exit(1);
|
|
178
|
+
}
|
|
179
|
+
if (exitCode !== 0) {
|
|
180
|
+
console.log();
|
|
181
|
+
console.error(chalk_1.default.red(` ${cmd} exited with code ${exitCode}.`));
|
|
182
|
+
console.log(chalk_1.default.dim(` Try running manually: ${cmd} ${args.join(' ')}`));
|
|
183
|
+
console.log();
|
|
184
|
+
process.exit(exitCode);
|
|
185
|
+
}
|
|
186
|
+
console.log();
|
|
187
|
+
console.log(chalk_1.default.green(` ✓ Upgraded ${pkgName} from v${currentVersion} → v${latestVersion}`));
|
|
188
|
+
console.log();
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=upgrade.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -16,6 +16,7 @@ const migrate_1 = require("./commands/migrate");
|
|
|
16
16
|
const ci_1 = require("./commands/ci");
|
|
17
17
|
const init_action_1 = require("./commands/init-action");
|
|
18
18
|
const build_1 = require("./commands/build");
|
|
19
|
+
const upgrade_1 = require("./commands/upgrade");
|
|
19
20
|
const fs_1 = require("fs");
|
|
20
21
|
const path_1 = require("path");
|
|
21
22
|
const pkg = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, '..', 'package.json'), 'utf-8'));
|
|
@@ -155,10 +156,10 @@ program
|
|
|
155
156
|
});
|
|
156
157
|
program
|
|
157
158
|
.command('build')
|
|
158
|
-
.description('Apply migration files
|
|
159
|
+
.description('Apply migration files and snapshot the resulting schema (uses in-memory PostgreSQL if no --db/DATABASE_URL provided)')
|
|
159
160
|
.requiredOption('--migrations <path>', 'Directory containing .sql migration files (applied in lexicographic order)')
|
|
160
161
|
.option('--env <env>', 'Environment name for output schema files (default: local)', 'local')
|
|
161
|
-
.option('--db <connection-string>', 'Blank local database to apply migrations to (defaults to DATABASE_URL)')
|
|
162
|
+
.option('--db <connection-string>', 'Blank local database to apply migrations to (defaults to DATABASE_URL, or pg-mem in-memory if neither is set)')
|
|
162
163
|
.action(async (opts) => {
|
|
163
164
|
try {
|
|
164
165
|
await (0, build_1.buildCommand)({ migrations: opts.migrations, env: opts.env, db: opts.db });
|
|
@@ -168,5 +169,19 @@ program
|
|
|
168
169
|
process.exit(1);
|
|
169
170
|
}
|
|
170
171
|
});
|
|
172
|
+
program
|
|
173
|
+
.command('upgrade')
|
|
174
|
+
.description('Upgrade SchemaLens CLI to the latest version')
|
|
175
|
+
.option('--pm <manager>', 'Force package manager (npm, pnpm, yarn, bun)')
|
|
176
|
+
.option('--dry-run', 'Show what would be upgraded without installing', false)
|
|
177
|
+
.action(async (opts) => {
|
|
178
|
+
try {
|
|
179
|
+
await (0, upgrade_1.upgradeCommand)(opts);
|
|
180
|
+
}
|
|
181
|
+
catch (err) {
|
|
182
|
+
console.error(chalk_1.default.red(`\nError: ${err.message}\n`));
|
|
183
|
+
process.exit(1);
|
|
184
|
+
}
|
|
185
|
+
});
|
|
171
186
|
program.parse();
|
|
172
187
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { SchemaSnapshot } from './introspector';
|
|
2
|
+
export interface MigrationInput {
|
|
3
|
+
filename: string;
|
|
4
|
+
sql: string;
|
|
5
|
+
}
|
|
6
|
+
export interface InMemoryBuildResult {
|
|
7
|
+
snapshot: SchemaSnapshot;
|
|
8
|
+
warnings: string[];
|
|
9
|
+
skippedStatements: number;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Apply the given migrations to an in-memory pg-mem database and return a
|
|
13
|
+
* SchemaSnapshot built from the resulting state.
|
|
14
|
+
*
|
|
15
|
+
* Unsupported statements (CREATE FUNCTION, CREATE TRIGGER, CREATE POLICY,
|
|
16
|
+
* CREATE EXTENSION, GRANT, COMMENT, etc.) are skipped with warnings.
|
|
17
|
+
*/
|
|
18
|
+
export declare function introspectFromMigrations(migrations: MigrationInput[]): Promise<InMemoryBuildResult>;
|