drizzle-kit 0.9.39 → 0.9.42
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/.pnpm-debug.log +16 -0
- package/LICENSE +674 -0
- package/index.js +13144 -16614
- package/package.json +17 -16
- package/dev/data/column_rename/with_talbe_rename/new.js +0 -15
- package/dev/data/column_rename/with_talbe_rename/new.js.map +0 -1
- package/dev/data/column_rename/with_talbe_rename/prev.js +0 -15
- package/dev/data/column_rename/with_talbe_rename/prev.js.map +0 -1
- package/dev/data/column_rename/without_table_rename/v1/usersTable.js +0 -15
- package/dev/data/column_rename/without_table_rename/v1/usersTable.js.map +0 -1
- package/dev/data/column_rename/without_table_rename/v2/usersTable.js +0 -15
- package/dev/data/column_rename/without_table_rename/v2/usersTable.js.map +0 -1
- package/dev/data/jobs/from/from.js +0 -22
- package/dev/data/jobs/from/from.js.map +0 -1
- package/dev/data/jobs/to/to.js +0 -23
- package/dev/data/jobs/to/to.js.map +0 -1
- package/dev/data/leha/UsersTable.js +0 -36
- package/dev/data/leha/UsersTable.js.map +0 -1
- package/dev/data/leha/types.js +0 -13
- package/dev/data/leha/types.js.map +0 -1
- package/dev/data/v1/authOtpTable.js +0 -20
- package/dev/data/v1/authOtpTable.js.map +0 -1
- package/dev/data/v1/deletedTable.js +0 -14
- package/dev/data/v1/deletedTable.js.map +0 -1
- package/dev/data/v1/types.js +0 -9
- package/dev/data/v1/types.js.map +0 -1
- package/dev/data/v1/usersTable.js +0 -18
- package/dev/data/v1/usersTable.js.map +0 -1
- package/dev/data/v2/authOtpTable.js +0 -29
- package/dev/data/v2/authOtpTable.js.map +0 -1
- package/dev/data/v2/cityTable.js +0 -15
- package/dev/data/v2/cityTable.js.map +0 -1
- package/dev/data/v2/types.js +0 -13
- package/dev/data/v2/types.js.map +0 -1
- package/dev/data/v2/usersTable.js +0 -21
- package/dev/data/v2/usersTable.js.map +0 -1
- package/dev/data/v3/authOtpTable.js +0 -27
- package/dev/data/v3/authOtpTable.js.map +0 -1
- package/dev/data/v3/cityTable.js +0 -23
- package/dev/data/v3/cityTable.js.map +0 -1
- package/dev/data/v3/types.js +0 -13
- package/dev/data/v3/types.js.map +0 -1
- package/dev/data/v3/usersTable.js +0 -22
- package/dev/data/v3/usersTable.js.map +0 -1
- package/dev/data/v4/multi.js +0 -46
- package/dev/data/v4/multi.js.map +0 -1
- package/dev/diff.js +0 -28
- package/dev/diff.js.map +0 -1
- package/dev/factory.js +0 -78
- package/dev/factory.js.map +0 -1
- package/dev/fstest.js +0 -45
- package/dev/fstest.js.map +0 -1
- package/dev/index.js +0 -16
- package/dev/index.js.map +0 -1
- package/dev/prepare-snapshot.js +0 -19
- package/dev/prepare-snapshot.js.map +0 -1
- package/dev/quokka.js +0 -90
- package/dev/quokka.js.map +0 -1
- package/dev/serialiser.js +0 -30
- package/dev/serialiser.js.map +0 -1
- package/dev/simulate.js +0 -29
- package/dev/simulate.js.map +0 -1
- package/dev/test-build.js +0 -32
- package/dev/test-build.js.map +0 -1
- package/dev/testFactory.js +0 -42
- package/dev/testFactory.js.map +0 -1
- package/dev/testiko.js +0 -57
- package/dev/testiko.js.map +0 -1
- package/dev/yuup.js +0 -36
- package/dev/yuup.js.map +0 -1
- package/index.js.map +0 -7
- package/jest.config.js +0 -7
- package/jest.config.js.map +0 -1
- package/src/cli/commands/migrate.js +0 -64
- package/src/cli/commands/migrate.js.map +0 -1
- package/src/cli/components-api/index.js +0 -205
- package/src/cli/components-api/index.js.map +0 -1
- package/src/cli/enq.js +0 -38
- package/src/cli/enq.js.map +0 -1
- package/src/cli/index.js +0 -15
- package/src/cli/index.js.map +0 -1
- package/src/cli/machines/resolveColumnsMachine.js +0 -116
- package/src/cli/machines/resolveColumnsMachine.js.map +0 -1
- package/src/cli/machines/resolveTablesMachine.js +0 -114
- package/src/cli/machines/resolveTablesMachine.js.map +0 -1
- package/src/cli/utils/formatDataForTable.js +0 -21
- package/src/cli/utils/formatDataForTable.js.map +0 -1
- package/src/cli/utils/valuesForPrompts.js +0 -38
- package/src/cli/utils/valuesForPrompts.js.map +0 -1
- package/src/diff.js +0 -28
- package/src/diff.js.map +0 -1
- package/src/jsonDiffer.js +0 -178
- package/src/jsonDiffer.js.map +0 -1
- package/src/jsonStatements.js +0 -197
- package/src/jsonStatements.js.map +0 -1
- package/src/migrationPreparator.js +0 -37
- package/src/migrationPreparator.js.map +0 -1
- package/src/serializer/factory.js +0 -113
- package/src/serializer/factory.js.map +0 -1
- package/src/serializer/index.js +0 -25
- package/src/serializer/index.js.map +0 -1
- package/src/simulator.js +0 -105
- package/src/simulator.js.map +0 -1
- package/src/snapshotsDiffer.js +0 -127
- package/src/snapshotsDiffer.js.map +0 -1
- package/src/sqlgenerator.js +0 -241
- package/src/sqlgenerator.js.map +0 -1
- package/src/tests/columnsMachine.test.js +0 -270
- package/src/tests/columnsMachine.test.js.map +0 -1
- package/src/tests/tablesMachine.test.js +0 -272
- package/src/tests/tablesMachine.test.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/serializer/factory.ts"],"names":[],"mappings":"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"}
|
package/src/serializer/index.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
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
|
-
const fs_1 = __importDefault(require("fs"));
|
|
7
|
-
const string_decoder_1 = require("string_decoder");
|
|
8
|
-
const factory_1 = __importDefault(require("./factory"));
|
|
9
|
-
const esbuild = require("esbuild");
|
|
10
|
-
const serialize = (path) => {
|
|
11
|
-
const decoder = new string_decoder_1.StringDecoder();
|
|
12
|
-
const preparedFarbic = factory_1.default(path);
|
|
13
|
-
fs_1.default.writeFileSync("__out.ts", preparedFarbic, "utf-8");
|
|
14
|
-
const result = esbuild.buildSync({
|
|
15
|
-
entryPoints: ["__out.ts"],
|
|
16
|
-
bundle: true,
|
|
17
|
-
platform: "node",
|
|
18
|
-
write: false,
|
|
19
|
-
external: ["pg-native"],
|
|
20
|
-
});
|
|
21
|
-
fs_1.default.unlinkSync("__out.ts");
|
|
22
|
-
return eval(decoder.write(result.outputFiles[0].contents));
|
|
23
|
-
};
|
|
24
|
-
exports.default = serialize;
|
|
25
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/serializer/index.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,mDAA+C;AAC/C,wDAA0C;AAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAEnC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAU,EAAE;IACzC,MAAM,OAAO,GAAG,IAAI,8BAAa,EAAE,CAAC;IACpC,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAE9C,YAAE,CAAC,aAAa,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;QAC/B,WAAW,EAAE,CAAC,UAAU,CAAC;QACzB,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,CAAC,WAAW,CAAC;KACxB,CAAC,CAAC;IAEH,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC"}
|
package/src/simulator.js
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.resolveColumns = exports.resolveTables = void 0;
|
|
4
|
-
Array.prototype.exactlyOne = function () {
|
|
5
|
-
if (this.length !== 1) {
|
|
6
|
-
return undefined;
|
|
7
|
-
}
|
|
8
|
-
return this[0];
|
|
9
|
-
};
|
|
10
|
-
class DryRun {
|
|
11
|
-
can(added, removed) {
|
|
12
|
-
return added.length === 0 && removed.length === 0;
|
|
13
|
-
}
|
|
14
|
-
handle(added, _) {
|
|
15
|
-
return { created: added, deleted: [], renamed: [] };
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
// class Fallback implements Handler {
|
|
19
|
-
// can(_: Table[], __: Table[]): boolean {
|
|
20
|
-
// return true
|
|
21
|
-
// }
|
|
22
|
-
// handle(added: Table[], _: Table[]): { created: Table[]; deleted: Table[]; renamed: { from: Table; to: Table; }[]; } {
|
|
23
|
-
// return { created: added, deleted: , renamed: [] }
|
|
24
|
-
// }
|
|
25
|
-
// }
|
|
26
|
-
class Case1 {
|
|
27
|
-
can(_, removed) {
|
|
28
|
-
return removed.length === 1 && removed[0].name === 'citiess';
|
|
29
|
-
}
|
|
30
|
-
handle(added, removed) {
|
|
31
|
-
return { created: added, deleted: removed, renamed: [] };
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
class Case2 {
|
|
35
|
-
// authOtp, deleted, users -> authOtp renamed, cities added, deleted deleted
|
|
36
|
-
can(_, removed) {
|
|
37
|
-
return removed.length === 3 && removed[0].name === 'auth_otp';
|
|
38
|
-
}
|
|
39
|
-
handle(added, removed) {
|
|
40
|
-
return { created: added.slice(1), deleted: removed.slice(1), renamed: [{ from: removed[0], to: added[0] }] };
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
const handlers = [];
|
|
44
|
-
handlers.push(new Case1());
|
|
45
|
-
handlers.push(new Case2());
|
|
46
|
-
handlers.push(new DryRun());
|
|
47
|
-
const resolveTables = (added, removed) => {
|
|
48
|
-
const handler = handlers.filter(it => {
|
|
49
|
-
return it.can(added, removed);
|
|
50
|
-
}).exactlyOne();
|
|
51
|
-
if (!handler) {
|
|
52
|
-
console.log('added', added.map(it => it.name).join());
|
|
53
|
-
console.log('removed', removed.map(it => it.name).join());
|
|
54
|
-
throw new Error("No handler");
|
|
55
|
-
}
|
|
56
|
-
console.log(`Simluated by ${handler.constructor.name}`);
|
|
57
|
-
return handler.handle(added, removed);
|
|
58
|
-
};
|
|
59
|
-
exports.resolveTables = resolveTables;
|
|
60
|
-
class LehaColumnsHandler {
|
|
61
|
-
can(tableName, _, __) {
|
|
62
|
-
return tableName === 'users';
|
|
63
|
-
}
|
|
64
|
-
handle(tableName, added, removed) {
|
|
65
|
-
return { tableName, created: [], deleted: [], renamed: [{ from: removed[0], to: added[0] }] };
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
class DryRunColumnsHandler {
|
|
69
|
-
can(tableName, _, __) {
|
|
70
|
-
return true;
|
|
71
|
-
}
|
|
72
|
-
handle(tableName, added, removed) {
|
|
73
|
-
return { tableName, created: added, deleted: removed, renamed: [] };
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
class V1V2AuthOtpColumnsHandler {
|
|
77
|
-
can(tableName, _, __) {
|
|
78
|
-
return tableName === 'auth_otp';
|
|
79
|
-
}
|
|
80
|
-
handle(tableName, added, removed) {
|
|
81
|
-
const phonePrev = removed.filter((it) => it.name === 'phone')[0];
|
|
82
|
-
const phoneNew = added.filter((it) => it.name === 'phone1')[0];
|
|
83
|
-
const newAdded = added.filter((it => it.name !== 'phone1'));
|
|
84
|
-
const newRemoved = removed.filter((it => it.name !== 'phone'));
|
|
85
|
-
return { tableName, created: newAdded, deleted: newRemoved, renamed: [{ from: phonePrev, to: phoneNew }] };
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
const columnsHandlers = [];
|
|
89
|
-
columnsHandlers.push(new V1V2AuthOtpColumnsHandler());
|
|
90
|
-
columnsHandlers.push(new LehaColumnsHandler());
|
|
91
|
-
columnsHandlers.push(new DryRunColumnsHandler());
|
|
92
|
-
const resolveColumns = (tableName, added, removed) => {
|
|
93
|
-
const handler = columnsHandlers.filter(it => {
|
|
94
|
-
return it.can(tableName, added, removed);
|
|
95
|
-
})[0];
|
|
96
|
-
if (!handler) {
|
|
97
|
-
console.log('added', added.map(it => it.name).join());
|
|
98
|
-
console.log('removed', removed.map(it => it.name).join());
|
|
99
|
-
throw new Error("No columns handler for table: " + tableName);
|
|
100
|
-
}
|
|
101
|
-
console.log(`${tableName} columns simluated by ${handler.constructor.name}`);
|
|
102
|
-
return handler.handle(tableName, added, removed);
|
|
103
|
-
};
|
|
104
|
-
exports.resolveColumns = resolveColumns;
|
|
105
|
-
//# sourceMappingURL=simulator.js.map
|
package/src/simulator.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"simulator.js","sourceRoot":"","sources":["../../src/simulator.ts"],"names":[],"mappings":"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"}
|
package/src/snapshotsDiffer.js
DELETED
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.applySnapshotsDiff = void 0;
|
|
4
|
-
const sqlgenerator_1 = require("./sqlgenerator");
|
|
5
|
-
const jsonDiffer_1 = require("./jsonDiffer");
|
|
6
|
-
const yup_1 = require("yup");
|
|
7
|
-
const jsonStatements_1 = require("./jsonStatements");
|
|
8
|
-
const columnSchema = yup_1.object({
|
|
9
|
-
name: yup_1.string().required(),
|
|
10
|
-
type: yup_1.string().required(),
|
|
11
|
-
primaryKey: yup_1.boolean().optional(),
|
|
12
|
-
unique: yup_1.boolean().optional(),
|
|
13
|
-
defaultValue: yup_1.string().optional(),
|
|
14
|
-
notNull: yup_1.boolean().optional(),
|
|
15
|
-
references: yup_1.object({
|
|
16
|
-
table: yup_1.string().required(),
|
|
17
|
-
column: yup_1.string().required(),
|
|
18
|
-
foreignKeyName: yup_1.string().required(),
|
|
19
|
-
onDelete: yup_1.string().optional(),
|
|
20
|
-
onUpdate: yup_1.string().optional(),
|
|
21
|
-
}).optional()
|
|
22
|
-
}).noUnknown();
|
|
23
|
-
const applySnapshotsDiff = async (json1, json2, tablesResolver, columnsResolver) => {
|
|
24
|
-
const diffResult = jsonDiffer_1.applyJsonDiff(json1, json2);
|
|
25
|
-
const typedResult = diffResult;
|
|
26
|
-
typedResult.addedTables.forEach(t => {
|
|
27
|
-
Object.values(t.columns).forEach(column => {
|
|
28
|
-
columnSchema.validate(column, { strict: true });
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
typedResult.deletedTables.forEach(t => {
|
|
32
|
-
Object.values(t.columns).forEach(column => {
|
|
33
|
-
columnSchema.validate(column, { strict: true });
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
typedResult.alteredTablesWithColumns.forEach(t => {
|
|
37
|
-
t.added.forEach(column => {
|
|
38
|
-
columnSchema.validate(column, { strict: true });
|
|
39
|
-
});
|
|
40
|
-
t.deleted.forEach(column => {
|
|
41
|
-
columnSchema.validate(column, { strict: true });
|
|
42
|
-
});
|
|
43
|
-
});
|
|
44
|
-
const { created, deleted, renamed } = await tablesResolver({ created: typedResult.addedTables, deleted: typedResult.deletedTables });
|
|
45
|
-
const jsonStatements = [];
|
|
46
|
-
const jsonCreateTables = created.map(it => {
|
|
47
|
-
return jsonStatements_1.prepareCreateTableJson(it);
|
|
48
|
-
});
|
|
49
|
-
const jsonCreateIndexesForCreatedTables = created.map(it => {
|
|
50
|
-
return jsonStatements_1.prepareCreateIndexesJson(it.name, it.indexes);
|
|
51
|
-
}).flat();
|
|
52
|
-
const jsonDropTables = deleted.map(it => {
|
|
53
|
-
return jsonStatements_1.prepareDropTableJson(it);
|
|
54
|
-
});
|
|
55
|
-
const jsonRenameTables = renamed.map(it => {
|
|
56
|
-
return jsonStatements_1.prepareRenameTableJson(it.from, it.to);
|
|
57
|
-
});
|
|
58
|
-
const renamedWithAlternations = jsonDiffer_1.diffForRenamedTables(renamed);
|
|
59
|
-
const allAltered = typedResult.alteredTablesWithColumns.concat(renamedWithAlternations);
|
|
60
|
-
const jsonRenameColumnsStatements = [];
|
|
61
|
-
const allAlteredResolved = [];
|
|
62
|
-
for (const table of allAltered) {
|
|
63
|
-
const result = await columnsResolver({ tableName: table.name, created: table.added, deleted: table.deleted });
|
|
64
|
-
// prepare oldTable and newTable
|
|
65
|
-
jsonRenameColumnsStatements.push(...jsonStatements_1.prepareRenameColumns(table.name, result.renamed));
|
|
66
|
-
const renamedColumnsAltered = result.renamed.map(it => jsonDiffer_1.diffForRenamedColumn(it.from, it.to));
|
|
67
|
-
const resolved = {
|
|
68
|
-
name: table.name,
|
|
69
|
-
deleted: result.deleted,
|
|
70
|
-
added: result.created,
|
|
71
|
-
altered: renamedColumnsAltered,
|
|
72
|
-
addedIndexes: table.addedIndexes,
|
|
73
|
-
deletedIndexes: table.deletedIndexes
|
|
74
|
-
};
|
|
75
|
-
allAlteredResolved.push(resolved);
|
|
76
|
-
}
|
|
77
|
-
const jsonAlterTables = allAlteredResolved.map(it => {
|
|
78
|
-
return jsonStatements_1.prepareAlterTableColumnsJson(it.name, it.deleted, it.added, it.altered);
|
|
79
|
-
}).flat();
|
|
80
|
-
const jsonCreateIndexesForAllAlteredTables = allAltered.map(it => {
|
|
81
|
-
return jsonStatements_1.prepareCreateIndexesJson(it.name, it.addedIndexes || {});
|
|
82
|
-
}).flat();
|
|
83
|
-
const jsonDropIndexesForAllAlteredTables = allAltered.map(it => {
|
|
84
|
-
return jsonStatements_1.prepareDropIndexesJson(it.name, it.deletedIndexes || {});
|
|
85
|
-
}).flat();
|
|
86
|
-
const jsonCreateReferencesForCreatedTables = created.map(it => {
|
|
87
|
-
return jsonStatements_1.prepareCreateReferencesJson(it.name, Object.values(it.columns));
|
|
88
|
-
}).flat();
|
|
89
|
-
const jsonCreateReferencesForAllAlteredTables = allAltered.map(it => {
|
|
90
|
-
return jsonStatements_1.prepareCreateReferencesJson(it.name, it.added);
|
|
91
|
-
}).flat();
|
|
92
|
-
const jsonCreateReferences = jsonCreateReferencesForCreatedTables.concat(jsonCreateReferencesForAllAlteredTables);
|
|
93
|
-
// // Enums:
|
|
94
|
-
// // - создание енама ✅
|
|
95
|
-
// // - переименование енама (пока не делаю)⏳
|
|
96
|
-
// // - добавление вэлью к енаму ✅
|
|
97
|
-
// // - ренейм вейлью у енама (пока не делаю, это надо запрашивать опять же через слай)⏳
|
|
98
|
-
// // - удаление енама -> чекать не используется ли где-то енам и сначала ранить миграции и в самом конце удаление енама⏳
|
|
99
|
-
// // - удаление вэлью из енама -> блок ❌
|
|
100
|
-
// const enums = result.addedEnums.map(it => {
|
|
101
|
-
// return prepareCreateEnum(it.name, it.values)
|
|
102
|
-
// })
|
|
103
|
-
const createEnums = diffResult.addedEnums.map(it => {
|
|
104
|
-
return jsonStatements_1.prepareCreateEnumJson(it.name, it.values);
|
|
105
|
-
});
|
|
106
|
-
//todo: block enum rename, enum value rename and enun deletion for now
|
|
107
|
-
const jsonAlterEnumsWithAddedValues = diffResult.alteredEnums.map(it => {
|
|
108
|
-
return jsonStatements_1.prepareAddValuesToEnumJson(it.name, it.addedValues);
|
|
109
|
-
}).flat();
|
|
110
|
-
jsonStatements.push(...createEnums);
|
|
111
|
-
jsonStatements.push(...jsonAlterEnumsWithAddedValues);
|
|
112
|
-
jsonStatements.push(...jsonCreateTables);
|
|
113
|
-
jsonStatements.push(...jsonDropTables);
|
|
114
|
-
jsonStatements.push(...jsonRenameTables);
|
|
115
|
-
jsonStatements.push(...jsonRenameColumnsStatements);
|
|
116
|
-
jsonStatements.push(...jsonAlterTables);
|
|
117
|
-
jsonStatements.push(...jsonCreateReferences);
|
|
118
|
-
jsonStatements.push(...jsonCreateIndexesForCreatedTables);
|
|
119
|
-
jsonStatements.push(...jsonCreateIndexesForAllAlteredTables);
|
|
120
|
-
jsonStatements.push(...jsonDropIndexesForAllAlteredTables);
|
|
121
|
-
const sqlStatements = sqlgenerator_1.fromJson(jsonStatements);
|
|
122
|
-
return sqlStatements.join('\n');
|
|
123
|
-
};
|
|
124
|
-
exports.applySnapshotsDiff = applySnapshotsDiff;
|
|
125
|
-
// explicitely ask if tables were renamed, if yes - add those to altered tables, otherwise - deleted
|
|
126
|
-
// double check if user wants to delete particular table and warn him on data loss
|
|
127
|
-
//# sourceMappingURL=snapshotsDiffer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"snapshotsDiffer.js","sourceRoot":"","sources":["../../src/snapshotsDiffer.ts"],"names":[],"mappings":"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"}
|
package/src/sqlgenerator.js
DELETED
|
@@ -1,241 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fromJson = void 0;
|
|
4
|
-
class Convertor {
|
|
5
|
-
}
|
|
6
|
-
class CreateTableConvertor extends Convertor {
|
|
7
|
-
can(statement) {
|
|
8
|
-
return statement.type === 'create_table';
|
|
9
|
-
}
|
|
10
|
-
convert(st) {
|
|
11
|
-
const { tableName, columns } = st;
|
|
12
|
-
let statement = '';
|
|
13
|
-
statement += `CREATE TABLE IF NOT EXISTS ${tableName} (\n`;
|
|
14
|
-
for (let i = 0; i < columns.length; i++) {
|
|
15
|
-
const column = columns[i];
|
|
16
|
-
const primaryKeyStatement = column.primaryKey ? "PRIMARY KEY" : '';
|
|
17
|
-
const notNullStatement = column.notNull ? "NOT NULL" : "";
|
|
18
|
-
const defaultStatement = column.defaultValue ? `DEFAULT '${column.defaultValue}'` : "";
|
|
19
|
-
statement += '\t' + `${column.name} ${column.type} ${primaryKeyStatement} ${defaultStatement} ${notNullStatement}`.replace(/ +/g, ' ').trim();
|
|
20
|
-
statement += (i === columns.length - 1 ? '' : ',') + '\n';
|
|
21
|
-
}
|
|
22
|
-
statement += `);`;
|
|
23
|
-
statement += `\n`;
|
|
24
|
-
return statement;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
class CreateTypeEnumConvertor extends Convertor {
|
|
28
|
-
can(statement) {
|
|
29
|
-
return statement.type === 'create_type_enum';
|
|
30
|
-
}
|
|
31
|
-
convert(st) {
|
|
32
|
-
const { name, values } = st;
|
|
33
|
-
let valuesStatement = '(';
|
|
34
|
-
valuesStatement += values.map(it => `'${it}'`).join(', ');
|
|
35
|
-
valuesStatement += ')';
|
|
36
|
-
let statement = "DO $$ BEGIN";
|
|
37
|
-
statement += "\n";
|
|
38
|
-
statement += ` CREATE TYPE ${name} AS ENUM${valuesStatement};`;
|
|
39
|
-
statement += "\n";
|
|
40
|
-
statement += "EXCEPTION";
|
|
41
|
-
statement += "\n";
|
|
42
|
-
statement += " WHEN duplicate_object THEN null;";
|
|
43
|
-
statement += "\n";
|
|
44
|
-
statement += "END $$;";
|
|
45
|
-
statement += '\n';
|
|
46
|
-
return statement;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
class AlterTypeAddValueConvertor extends Convertor {
|
|
50
|
-
can(statement) {
|
|
51
|
-
return statement.type === 'alter_type_add_value';
|
|
52
|
-
}
|
|
53
|
-
convert(st) {
|
|
54
|
-
const { name, value } = st;
|
|
55
|
-
return `ALTER TYPE ${name} ADD VALUE '${value}';`;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
class DropTableConvertor extends Convertor {
|
|
59
|
-
can(statement) {
|
|
60
|
-
return statement.type === 'drop_table';
|
|
61
|
-
}
|
|
62
|
-
convert(statement) {
|
|
63
|
-
const { tableName } = statement;
|
|
64
|
-
return `DROP TABLE ${tableName};`;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
class RenameTableConvertor extends Convertor {
|
|
68
|
-
can(statement) {
|
|
69
|
-
return statement.type === 'rename_table';
|
|
70
|
-
}
|
|
71
|
-
convert(statement) {
|
|
72
|
-
const { tableNameFrom, tableNameTo } = statement;
|
|
73
|
-
return `ALTER TABLE ${tableNameFrom} RENAME TO ${tableNameTo};`;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
class AlterTableRenameColumnConvertor extends Convertor {
|
|
77
|
-
can(statement) {
|
|
78
|
-
return statement.type === 'alter_table_rename_column';
|
|
79
|
-
}
|
|
80
|
-
convert(statement) {
|
|
81
|
-
const { tableName, oldColumnName, newColumnName } = statement;
|
|
82
|
-
return `ALTER TABLE ${tableName} RENAME COLUMN ${oldColumnName} TO ${newColumnName};`;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
class AlterTableDropColumnConvertor extends Convertor {
|
|
86
|
-
can(statement) {
|
|
87
|
-
return statement.type === 'alter_table_drop_column';
|
|
88
|
-
}
|
|
89
|
-
convert(statement) {
|
|
90
|
-
const { tableName, columnName } = statement;
|
|
91
|
-
return `ALTER TABLE ${tableName} DROP COLUMN IF EXISTS ${columnName};`;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
class AlterTableAddColumnConvertor extends Convertor {
|
|
95
|
-
can(statement) {
|
|
96
|
-
return statement.type === 'alter_table_add_column';
|
|
97
|
-
}
|
|
98
|
-
convert(statement) {
|
|
99
|
-
const { tableName, column } = statement;
|
|
100
|
-
const { name, type, notNull } = column;
|
|
101
|
-
const defaultValue = column.defaultValue;
|
|
102
|
-
const defaultStatement = `${defaultValue ? `DEFAULT ${defaultValue}` : ''}`;
|
|
103
|
-
const notNullStatement = `${notNull ? 'NOT NULL' : ''}`;
|
|
104
|
-
return `ALTER TABLE ${tableName} ADD COLUMN ${name} ${type} ${defaultStatement} ${notNullStatement}`.replace(/ +/g, ' ').trim() + ';';
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
class AlterTableAlterColumnSetTypeConvertor extends Convertor {
|
|
108
|
-
can(statement) {
|
|
109
|
-
return statement.type === 'alter_table_alter_column_set_type';
|
|
110
|
-
}
|
|
111
|
-
convert(statement) {
|
|
112
|
-
const { tableName, columnName, newDataType } = statement;
|
|
113
|
-
return `ALTER TABLE ${tableName} ALTER COLUMN ${columnName} SET DATA TYPE ${newDataType};`;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
class AlterTableAlterColumnSetDefaultConvertor extends Convertor {
|
|
117
|
-
can(statement) {
|
|
118
|
-
return statement.type === 'alter_table_alter_column_set_default';
|
|
119
|
-
}
|
|
120
|
-
convert(statement) {
|
|
121
|
-
const { tableName, columnName } = statement;
|
|
122
|
-
return `ALTER TABLE ${tableName} ALTER COLUMN ${columnName} SET DEFAULT ${statement.newDefaultValue};`;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
class AlterTableAlterColumnDropDefaultConvertor extends Convertor {
|
|
126
|
-
can(statement) {
|
|
127
|
-
return statement.type === 'alter_table_alter_column_drop_default';
|
|
128
|
-
}
|
|
129
|
-
convert(statement) {
|
|
130
|
-
const { tableName, columnName } = statement;
|
|
131
|
-
return `ALTER TABLE ${tableName} ALTER COLUMN ${columnName} DROP DEFAULT;`;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
class AlterTableAlterColumnSetNotNullConvertor extends Convertor {
|
|
135
|
-
can(statement) {
|
|
136
|
-
return statement.type === 'alter_table_alter_column_set_notnull';
|
|
137
|
-
}
|
|
138
|
-
convert(statement) {
|
|
139
|
-
const { tableName, columnName } = statement;
|
|
140
|
-
return `ALTER TABLE ${tableName} ALTER COLUMN ${columnName} SET NOT NULL;`;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
class AlterTableAlterColumnDropNotNullConvertor extends Convertor {
|
|
144
|
-
can(statement) {
|
|
145
|
-
return statement.type === 'alter_table_alter_column_drop_notnull';
|
|
146
|
-
}
|
|
147
|
-
convert(statement) {
|
|
148
|
-
const { tableName, columnName } = statement;
|
|
149
|
-
return `ALTER TABLE ${tableName} ALTER COLUMN ${columnName} DROP NOT NULL;`;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
class CreateForeignKeyConvertor extends Convertor {
|
|
153
|
-
can(statement) {
|
|
154
|
-
return statement.type === 'create_reference';
|
|
155
|
-
}
|
|
156
|
-
convert(statement) {
|
|
157
|
-
const { fromTable, toTable, fromColumn, toColumn, foreignKeyName, onDelete, onUpdate } = statement;
|
|
158
|
-
const onDeleteStatement = onDelete || "";
|
|
159
|
-
const onUpdateStatement = onUpdate || "";
|
|
160
|
-
return `ALTER TABLE ${fromTable} ADD CONSTRAINT ${foreignKeyName} FOREIGN KEY (${fromColumn}) REFERENCES ${toTable}(${toColumn}) ${onDeleteStatement} ${onUpdateStatement}`.replace(/ +/g, ' ').trim() + ';';
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
class CreateIndexConvertor extends Convertor {
|
|
164
|
-
can(statement) {
|
|
165
|
-
return statement.type === 'create_index';
|
|
166
|
-
}
|
|
167
|
-
convert(statement) {
|
|
168
|
-
const { tableName, indexName, value } = statement;
|
|
169
|
-
// since postgresql 9.5
|
|
170
|
-
const indexPart = statement.isUnique ? 'UNIQUE INDEX' : 'INDEX';
|
|
171
|
-
return `CREATE ${indexPart} IF NOT EXISTS ${indexName} ON ${tableName} (${value});`;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
class DropIndexConvertor extends Convertor {
|
|
175
|
-
can(statement) {
|
|
176
|
-
return statement.type === 'drop_index';
|
|
177
|
-
}
|
|
178
|
-
convert(statement) {
|
|
179
|
-
const { indexName } = statement;
|
|
180
|
-
return `DROP INDEX IF EXISTS ${indexName};`;
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
const convertors = [];
|
|
184
|
-
convertors.push(new CreateTableConvertor());
|
|
185
|
-
convertors.push(new CreateTypeEnumConvertor());
|
|
186
|
-
convertors.push(new DropTableConvertor());
|
|
187
|
-
convertors.push(new RenameTableConvertor());
|
|
188
|
-
convertors.push(new AlterTableRenameColumnConvertor());
|
|
189
|
-
convertors.push(new AlterTableDropColumnConvertor());
|
|
190
|
-
convertors.push(new AlterTableAddColumnConvertor());
|
|
191
|
-
convertors.push(new AlterTableAlterColumnSetTypeConvertor());
|
|
192
|
-
convertors.push(new CreateIndexConvertor());
|
|
193
|
-
convertors.push(new DropIndexConvertor());
|
|
194
|
-
convertors.push(new AlterTypeAddValueConvertor());
|
|
195
|
-
convertors.push(new AlterTableAlterColumnSetNotNullConvertor());
|
|
196
|
-
convertors.push(new AlterTableAlterColumnDropNotNullConvertor());
|
|
197
|
-
convertors.push(new AlterTableAlterColumnSetDefaultConvertor());
|
|
198
|
-
convertors.push(new AlterTableAlterColumnDropDefaultConvertor());
|
|
199
|
-
convertors.push(new CreateForeignKeyConvertor());
|
|
200
|
-
const fromJson = (statements) => {
|
|
201
|
-
const result = statements.map(statement => {
|
|
202
|
-
const filtered = convertors.filter(it => {
|
|
203
|
-
return it.can(statement);
|
|
204
|
-
});
|
|
205
|
-
const convertor = filtered.length === 1 ? filtered[0] : undefined;
|
|
206
|
-
if (!convertor) {
|
|
207
|
-
console.log('no convertor:', statement.type);
|
|
208
|
-
return 'dry run';
|
|
209
|
-
}
|
|
210
|
-
return convertor.convert(statement);
|
|
211
|
-
});
|
|
212
|
-
return result;
|
|
213
|
-
};
|
|
214
|
-
exports.fromJson = fromJson;
|
|
215
|
-
https: //blog.yo1.dog/updating-enum-values-in-postgresql-the-safe-and-easy-way/
|
|
216
|
-
|
|
217
|
-
// test case for enum altering
|
|
218
|
-
`
|
|
219
|
-
create table users (
|
|
220
|
-
id int,
|
|
221
|
-
name character varying(128)
|
|
222
|
-
);
|
|
223
|
-
|
|
224
|
-
create type venum as enum('one', 'two', 'three');
|
|
225
|
-
alter table users add column typed venum;
|
|
226
|
-
|
|
227
|
-
insert into users(id, name, typed) values (1, 'name1', 'one');
|
|
228
|
-
insert into users(id, name, typed) values (2, 'name2', 'two');
|
|
229
|
-
insert into users(id, name, typed) values (3, 'name3', 'three');
|
|
230
|
-
|
|
231
|
-
alter type venum rename to __venum;
|
|
232
|
-
create type venum as enum ('one', 'two', 'three', 'four', 'five');
|
|
233
|
-
|
|
234
|
-
ALTER TABLE users ALTER COLUMN typed TYPE venum USING typed::text::venum;
|
|
235
|
-
|
|
236
|
-
insert into users(id, name, typed) values (4, 'name4', 'four');
|
|
237
|
-
insert into users(id, name, typed) values (5, 'name5', 'five');
|
|
238
|
-
|
|
239
|
-
drop type __venum;
|
|
240
|
-
`;
|
|
241
|
-
//# sourceMappingURL=sqlgenerator.js.map
|
package/src/sqlgenerator.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sqlgenerator.js","sourceRoot":"","sources":["../../src/sqlgenerator.ts"],"names":[],"mappings":"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"}
|