typeorm 0.3.8-dev.46d0021 → 0.3.8-dev.5e5abbd
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/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +4 -1
- package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachQueryRunner.js +4 -1
- package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/browser/driver/mysql/MysqlQueryRunner.js +4 -1
- package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/browser/driver/oracle/OracleQueryRunner.js +4 -1
- package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/browser/driver/postgres/PostgresDriver.js +2 -2
- package/browser/driver/postgres/PostgresDriver.js.map +1 -1
- package/browser/driver/postgres/PostgresQueryRunner.d.ts +1 -1
- package/browser/driver/postgres/PostgresQueryRunner.js +22 -13
- package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/browser/driver/sap/SapQueryRunner.js +4 -1
- package/browser/driver/sap/SapQueryRunner.js.map +1 -1
- package/browser/driver/spanner/SpannerQueryRunner.js +4 -1
- package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +20 -13
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerConnectionOptions.d.ts +6 -1
- package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerQueryRunner.js +4 -1
- package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/browser/entity-manager/EntityManager.js +1 -0
- package/browser/entity-manager/EntityManager.js.map +1 -1
- package/browser/entity-manager/MongoEntityManager.d.ts +1 -1
- package/browser/entity-manager/MongoEntityManager.js +17 -10
- package/browser/entity-manager/MongoEntityManager.js.map +1 -1
- package/browser/persistence/SubjectTopoligicalSorter.js +6 -1
- package/browser/persistence/SubjectTopoligicalSorter.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilder.js +13 -2
- package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
- package/browser/query-builder/UpdateQueryBuilder.js +1 -0
- package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/browser/query-runner/BaseQueryRunner.d.ts +5 -0
- package/browser/query-runner/BaseQueryRunner.js +7 -0
- package/browser/query-runner/BaseQueryRunner.js.map +1 -1
- package/browser/schema-builder/options/TableOptions.d.ts +4 -0
- package/browser/schema-builder/options/TableOptions.js.map +1 -1
- package/browser/schema-builder/table/Table.d.ts +4 -0
- package/browser/schema-builder/table/Table.js +8 -0
- package/browser/schema-builder/table/Table.js.map +1 -1
- package/browser/util/DateUtils.d.ts +1 -1
- package/browser/util/DateUtils.js +7 -8
- package/browser/util/DateUtils.js.map +1 -1
- package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +4 -1
- package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
- package/driver/cockroachdb/CockroachQueryRunner.js +4 -1
- package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/driver/mysql/MysqlQueryRunner.js +4 -1
- package/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/driver/oracle/OracleQueryRunner.js +4 -1
- package/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/driver/postgres/PostgresDriver.js +2 -2
- package/driver/postgres/PostgresDriver.js.map +1 -1
- package/driver/postgres/PostgresQueryRunner.d.ts +1 -1
- package/driver/postgres/PostgresQueryRunner.js +22 -13
- package/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/driver/sap/SapQueryRunner.js +4 -1
- package/driver/sap/SapQueryRunner.js.map +1 -1
- package/driver/spanner/SpannerQueryRunner.js +4 -1
- package/driver/spanner/SpannerQueryRunner.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +1 -1
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +20 -13
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/driver/sqlserver/SqlServerConnectionOptions.d.ts +6 -1
- package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
- package/driver/sqlserver/SqlServerQueryRunner.js +4 -1
- package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/entity-manager/EntityManager.js +1 -0
- package/entity-manager/EntityManager.js.map +1 -1
- package/entity-manager/MongoEntityManager.d.ts +1 -1
- package/entity-manager/MongoEntityManager.js +17 -10
- package/entity-manager/MongoEntityManager.js.map +1 -1
- package/package.json +1 -1
- package/persistence/SubjectTopoligicalSorter.js +6 -1
- package/persistence/SubjectTopoligicalSorter.js.map +1 -1
- package/query-builder/SelectQueryBuilder.js +13 -2
- package/query-builder/SelectQueryBuilder.js.map +1 -1
- package/query-builder/UpdateQueryBuilder.js +1 -0
- package/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/query-runner/BaseQueryRunner.d.ts +5 -0
- package/query-runner/BaseQueryRunner.js +7 -0
- package/query-runner/BaseQueryRunner.js.map +1 -1
- package/schema-builder/options/TableOptions.d.ts +4 -0
- package/schema-builder/options/TableOptions.js.map +1 -1
- package/schema-builder/table/Table.d.ts +4 -0
- package/schema-builder/table/Table.js +8 -0
- package/schema-builder/table/Table.js.map +1 -1
- package/util/DateUtils.d.ts +1 -1
- package/util/DateUtils.js +7 -8
- package/util/DateUtils.js.map +1 -1
|
@@ -263,7 +263,7 @@ export declare abstract class AbstractSqliteQueryRunner extends BaseQueryRunner
|
|
|
263
263
|
/**
|
|
264
264
|
* Builds create table sql.
|
|
265
265
|
*/
|
|
266
|
-
protected createTableSql(table: Table, createForeignKeys?: boolean): Query;
|
|
266
|
+
protected createTableSql(table: Table, createForeignKeys?: boolean, temporaryTable?: boolean): Query;
|
|
267
267
|
/**
|
|
268
268
|
* Builds drop table sql.
|
|
269
269
|
*/
|
|
@@ -719,7 +719,7 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
|
|
|
719
719
|
: await this.getCachedTable(tableOrName);
|
|
720
720
|
// new index may be passed without name. In this case we generate index name manually.
|
|
721
721
|
if (!index.name)
|
|
722
|
-
index.name = this.
|
|
722
|
+
index.name = this.generateIndexName(table, index);
|
|
723
723
|
const up = this.createIndexSql(table, index);
|
|
724
724
|
const down = this.dropIndexSql(index);
|
|
725
725
|
await this.executeQueries(up, down);
|
|
@@ -744,6 +744,9 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
|
|
|
744
744
|
: table.indices.find((i) => i.name === indexOrName);
|
|
745
745
|
if (!index)
|
|
746
746
|
throw new TypeORMError(`Supplied index ${indexOrName} was not found in table ${table.name}`);
|
|
747
|
+
// old index may be passed without name. In this case we generate index name manually.
|
|
748
|
+
if (!index.name)
|
|
749
|
+
index.name = this.generateIndexName(table, index);
|
|
747
750
|
const up = this.dropIndexSql(index);
|
|
748
751
|
const down = this.createIndexSql(table, index);
|
|
749
752
|
await this.executeQueries(up, down);
|
|
@@ -881,8 +884,9 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
|
|
|
881
884
|
this.driver.getAttachedDatabaseHandleByRelativePath(dbTable["database"])
|
|
882
885
|
? `${this.driver.getAttachedDatabaseHandleByRelativePath(dbTable["database"])}.${dbTable["name"]}`
|
|
883
886
|
: dbTable["name"];
|
|
884
|
-
const table = new Table({ name: tablePath });
|
|
885
887
|
const sql = dbTable["sql"];
|
|
888
|
+
const withoutRowid = sql.includes("WITHOUT ROWID");
|
|
889
|
+
const table = new Table({ name: tablePath, withoutRowid });
|
|
886
890
|
// load columns and indices
|
|
887
891
|
const [dbColumns, dbIndices, dbForeignKeys] = await Promise.all([
|
|
888
892
|
this.loadPragmaRecords(tablePath, `table_xinfo`),
|
|
@@ -992,10 +996,10 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
|
|
|
992
996
|
}
|
|
993
997
|
return tableColumn;
|
|
994
998
|
}));
|
|
995
|
-
// find
|
|
999
|
+
// find foreign key constraints from CREATE TABLE sql
|
|
996
1000
|
let fkResult;
|
|
997
1001
|
const fkMappings = [];
|
|
998
|
-
const fkRegex = /CONSTRAINT "([^"]*)" FOREIGN KEY
|
|
1002
|
+
const fkRegex = /CONSTRAINT "([^"]*)" FOREIGN KEY ?\((.*?)\) REFERENCES "([^"]*)"/g;
|
|
999
1003
|
while ((fkResult = fkRegex.exec(sql)) !== null) {
|
|
1000
1004
|
fkMappings.push({
|
|
1001
1005
|
name: fkResult[1],
|
|
@@ -1028,7 +1032,7 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
|
|
|
1028
1032
|
// find unique constraints from CREATE TABLE sql
|
|
1029
1033
|
let uniqueRegexResult;
|
|
1030
1034
|
const uniqueMappings = [];
|
|
1031
|
-
const uniqueRegex = /CONSTRAINT "([^"]*)" UNIQUE
|
|
1035
|
+
const uniqueRegex = /CONSTRAINT "([^"]*)" UNIQUE ?\((.*?)\)/g;
|
|
1032
1036
|
while ((uniqueRegexResult = uniqueRegex.exec(sql)) !== null) {
|
|
1033
1037
|
uniqueMappings.push({
|
|
1034
1038
|
name: uniqueRegexResult[1],
|
|
@@ -1070,7 +1074,7 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
|
|
|
1070
1074
|
table.uniques = (await Promise.all(tableUniquePromises));
|
|
1071
1075
|
// build checks
|
|
1072
1076
|
let result;
|
|
1073
|
-
const regexp = /CONSTRAINT "([^"]*)" CHECK (\(.*?\))([,]|[)]$)/g;
|
|
1077
|
+
const regexp = /CONSTRAINT "([^"]*)" CHECK ?(\(.*?\))([,]|[)]$)/g;
|
|
1074
1078
|
while ((result = regexp.exec(sql)) !== null) {
|
|
1075
1079
|
table.checks.push(new TableCheck({
|
|
1076
1080
|
name: result[1],
|
|
@@ -1110,7 +1114,7 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
|
|
|
1110
1114
|
/**
|
|
1111
1115
|
* Builds create table sql.
|
|
1112
1116
|
*/
|
|
1113
|
-
createTableSql(table, createForeignKeys) {
|
|
1117
|
+
createTableSql(table, createForeignKeys, temporaryTable) {
|
|
1114
1118
|
const primaryColumns = table.columns.filter((column) => column.isPrimary);
|
|
1115
1119
|
const hasAutoIncrement = primaryColumns.find((column) => column.isGenerated && column.generationStrategy === "increment");
|
|
1116
1120
|
const skipPrimary = primaryColumns.length > 1;
|
|
@@ -1121,6 +1125,10 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
|
|
|
1121
1125
|
.join(", ");
|
|
1122
1126
|
const [database] = this.splitTablePath(table.name);
|
|
1123
1127
|
let sql = `CREATE TABLE ${this.escapePath(table.name)} (${columnDefinitions}`;
|
|
1128
|
+
let [databaseNew, tableName] = this.splitTablePath(table.name);
|
|
1129
|
+
const newTableName = temporaryTable
|
|
1130
|
+
? `${databaseNew ? `${databaseNew}.` : ""}${tableName.replace(/^temporary_/, "")}`
|
|
1131
|
+
: table.name;
|
|
1124
1132
|
// need for `addColumn()` method, because it recreates table.
|
|
1125
1133
|
table.columns
|
|
1126
1134
|
.filter((column) => column.isUnique)
|
|
@@ -1138,7 +1146,7 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
|
|
|
1138
1146
|
.map((unique) => {
|
|
1139
1147
|
const uniqueName = unique.name
|
|
1140
1148
|
? unique.name
|
|
1141
|
-
: this.connection.namingStrategy.uniqueConstraintName(
|
|
1149
|
+
: this.connection.namingStrategy.uniqueConstraintName(newTableName, unique.columnNames);
|
|
1142
1150
|
const columnNames = unique.columnNames
|
|
1143
1151
|
.map((columnName) => `"${columnName}"`)
|
|
1144
1152
|
.join(", ");
|
|
@@ -1152,7 +1160,7 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
|
|
|
1152
1160
|
.map((check) => {
|
|
1153
1161
|
const checkName = check.name
|
|
1154
1162
|
? check.name
|
|
1155
|
-
: this.connection.namingStrategy.checkConstraintName(
|
|
1163
|
+
: this.connection.namingStrategy.checkConstraintName(newTableName, check.expression);
|
|
1156
1164
|
return `CONSTRAINT "${checkName}" CHECK (${check.expression})`;
|
|
1157
1165
|
})
|
|
1158
1166
|
.join(", ");
|
|
@@ -1173,7 +1181,7 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
|
|
|
1173
1181
|
.map((columnName) => `"${columnName}"`)
|
|
1174
1182
|
.join(", ");
|
|
1175
1183
|
if (!fk.name)
|
|
1176
|
-
fk.name = this.connection.namingStrategy.foreignKeyName(
|
|
1184
|
+
fk.name = this.connection.namingStrategy.foreignKeyName(newTableName, fk.columnNames, this.getTablePath(fk), fk.referencedColumnNames);
|
|
1177
1185
|
const referencedColumnNames = fk.referencedColumnNames
|
|
1178
1186
|
.map((columnName) => `"${columnName}"`)
|
|
1179
1187
|
.join(", ");
|
|
@@ -1194,8 +1202,7 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
|
|
|
1194
1202
|
sql += `, PRIMARY KEY (${columnNames})`;
|
|
1195
1203
|
}
|
|
1196
1204
|
sql += `)`;
|
|
1197
|
-
|
|
1198
|
-
if (tableMetadata && tableMetadata.withoutRowid) {
|
|
1205
|
+
if (table.withoutRowid) {
|
|
1199
1206
|
sql += " WITHOUT ROWID";
|
|
1200
1207
|
}
|
|
1201
1208
|
return new Query(sql);
|
|
@@ -1322,7 +1329,7 @@ export class AbstractSqliteQueryRunner extends BaseQueryRunner {
|
|
|
1322
1329
|
let [, tableNameOld] = this.splitTablePath(oldTable.name);
|
|
1323
1330
|
newTable.name = tableNameNew = `${databaseNew ? `${databaseNew}.` : ""}temporary_${tableNameNew}`;
|
|
1324
1331
|
// create new table
|
|
1325
|
-
upQueries.push(this.createTableSql(newTable, true));
|
|
1332
|
+
upQueries.push(this.createTableSql(newTable, true, true));
|
|
1326
1333
|
downQueries.push(this.dropTableSql(newTable));
|
|
1327
1334
|
// migrate all data from the old table into new table
|
|
1328
1335
|
if (migrateData) {
|