@typetron/framework 0.5.38 → 0.5.39
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.
|
@@ -11,6 +11,8 @@ export declare class Schema extends BaseSchema {
|
|
|
11
11
|
};
|
|
12
12
|
create(table: string, columns: ColumnField<Entity>[]): Promise<void>;
|
|
13
13
|
protected syncTableColumns(table: string, columnsMetadata: ColumnField<Entity>[]): Promise<void>;
|
|
14
|
+
/** Columns as SQLite declares them, so an unchanged table is left alone */
|
|
15
|
+
private columnsSignature;
|
|
14
16
|
private getColumnTypeBasedOnTypescriptType;
|
|
15
17
|
}
|
|
16
18
|
//# sourceMappingURL=Schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/SQLite/Schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAgB,MAAM,OAAO,CAAA;AACzD,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,eAAe,CAAA;AAMpD,qBAAa,MAAO,SAAQ,UAAU;IAElC,gCAAgC,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC;;;;;;;;IAWxD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE;cAO1C,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/SQLite/Schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAgB,MAAM,OAAO,CAAA;AACzD,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,eAAe,CAAA;AAMpD,qBAAa,MAAO,SAAQ,UAAU;IAElC,gCAAgC,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC;;;;;;;;IAWxD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE;cAO1C,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE;IA6BtF,2EAA2E;IAC3E,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,kCAAkC;CAU7C"}
|
|
@@ -25,17 +25,37 @@ class Schema extends Schema_1.Schema {
|
|
|
25
25
|
async syncTableColumns(table, columnsMetadata) {
|
|
26
26
|
const columns = columnsMetadata.map(metadata => this.columnMetadataToColumnDefinition(metadata));
|
|
27
27
|
const tableColumns = await this.driver.tableColumns(table);
|
|
28
|
-
if (tableColumns.length) {
|
|
29
|
-
|
|
28
|
+
if (!tableColumns.length || this.columnsSignature(columns) === this.columnsSignature(tableColumns)) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
// SQLite can't alter columns in place, so the table is rebuilt in one transaction:
|
|
32
|
+
// an interrupted rebuild leaves the table as it was instead of a half-copied one.
|
|
33
|
+
const temporaryTableName = table + '_alter_tmp';
|
|
34
|
+
const columnList = (0, Helpers_1.wrap)(columns.whereIn('name', tableColumns.pluck('name')).pluck('name'));
|
|
35
|
+
await this.driver.run('BEGIN IMMEDIATE');
|
|
36
|
+
try {
|
|
37
|
+
// Rebuilds interrupted before this fix could leave one behind
|
|
38
|
+
await this.driver.run(`DROP TABLE IF EXISTS ${temporaryTableName}`);
|
|
30
39
|
await this.create(temporaryTableName, columnsMetadata);
|
|
31
|
-
const columnList = (0, Helpers_1.wrap)(columns.whereIn('name', tableColumns.pluck('name')).pluck('name'));
|
|
32
40
|
await this.driver.run(`INSERT INTO ${temporaryTableName}(${columnList})
|
|
33
41
|
SELECT ${columnList}
|
|
34
42
|
FROM ${table}`);
|
|
35
43
|
await this.driver.run(`DROP TABLE ${table}`);
|
|
36
44
|
await this.driver.run(`ALTER TABLE ${temporaryTableName} RENAME TO ${table}`);
|
|
45
|
+
await this.driver.run('COMMIT');
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
await this.driver.run('ROLLBACK');
|
|
49
|
+
throw error;
|
|
37
50
|
}
|
|
38
51
|
}
|
|
52
|
+
/** Columns as SQLite declares them, so an unchanged table is left alone */
|
|
53
|
+
columnsSignature(columns) {
|
|
54
|
+
return columns
|
|
55
|
+
.map(column => `${column.name}:${column.type.toLowerCase()}:${Number(Boolean(column.primaryKey))}`)
|
|
56
|
+
.sort()
|
|
57
|
+
.join(',');
|
|
58
|
+
}
|
|
39
59
|
getColumnTypeBasedOnTypescriptType(column) {
|
|
40
60
|
const typePrototype = Array.from(_1.typesMatches.keys())
|
|
41
61
|
.find(key => column.type().prototype instanceof key) || String;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../../../Database/Drivers/SQLite/Schema.ts"],"names":[],"mappings":";;;AAAA,6BAAyD;AACzD,0CAAoD;AACpD,qCAAiC;AACjC,wBAAgC;AAEhC,2CAAoC;AAEpC,MAAa,MAAO,SAAQ,eAAU;IAElC,gCAAgC,CAAC,QAA6B;QAC1D,OAAO;YACH,IAAI,EAAE,QAAQ,CAAC,MAAM;YACrB,UAAU,EAAE,QAAQ,CAAC,WAAW,KAAK,gBAAY;YACjD,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,KAAK,gBAAY,CAAC;YAC5D,IAAI,EAAE,IAAI,CAAC,kCAAkC,CAAC,QAAQ,CAAC;YACvD,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,IAAI;SACjB,CAAA;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,OAA8B;QACtD,MAAM,kBAAkB,GAA8B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,gCAAgC,CAAC,MAAM,CAAC,CAAC,CAAA;QAC1H,MAAM,eAAe,GAAG,IAAI,eAAM,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAA;QAE7D,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAA;IAClD,CAAC;IAES,KAAK,CAAC,gBAAgB,CAAC,KAAa,EAAE,eAAsC;QAClF,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,gCAAgC,CAAC,QAAQ,CAAC,CAAC,CAAA;QAChG,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QAE1D,IAAI,YAAY,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../../../Database/Drivers/SQLite/Schema.ts"],"names":[],"mappings":"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"}
|