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
|
*/
|
|
@@ -722,7 +722,7 @@ class AbstractSqliteQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
722
722
|
: await this.getCachedTable(tableOrName);
|
|
723
723
|
// new index may be passed without name. In this case we generate index name manually.
|
|
724
724
|
if (!index.name)
|
|
725
|
-
index.name = this.
|
|
725
|
+
index.name = this.generateIndexName(table, index);
|
|
726
726
|
const up = this.createIndexSql(table, index);
|
|
727
727
|
const down = this.dropIndexSql(index);
|
|
728
728
|
await this.executeQueries(up, down);
|
|
@@ -747,6 +747,9 @@ class AbstractSqliteQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
747
747
|
: table.indices.find((i) => i.name === indexOrName);
|
|
748
748
|
if (!index)
|
|
749
749
|
throw new error_1.TypeORMError(`Supplied index ${indexOrName} was not found in table ${table.name}`);
|
|
750
|
+
// old index may be passed without name. In this case we generate index name manually.
|
|
751
|
+
if (!index.name)
|
|
752
|
+
index.name = this.generateIndexName(table, index);
|
|
750
753
|
const up = this.dropIndexSql(index);
|
|
751
754
|
const down = this.createIndexSql(table, index);
|
|
752
755
|
await this.executeQueries(up, down);
|
|
@@ -884,8 +887,9 @@ class AbstractSqliteQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
884
887
|
this.driver.getAttachedDatabaseHandleByRelativePath(dbTable["database"])
|
|
885
888
|
? `${this.driver.getAttachedDatabaseHandleByRelativePath(dbTable["database"])}.${dbTable["name"]}`
|
|
886
889
|
: dbTable["name"];
|
|
887
|
-
const table = new Table_1.Table({ name: tablePath });
|
|
888
890
|
const sql = dbTable["sql"];
|
|
891
|
+
const withoutRowid = sql.includes("WITHOUT ROWID");
|
|
892
|
+
const table = new Table_1.Table({ name: tablePath, withoutRowid });
|
|
889
893
|
// load columns and indices
|
|
890
894
|
const [dbColumns, dbIndices, dbForeignKeys] = await Promise.all([
|
|
891
895
|
this.loadPragmaRecords(tablePath, `table_xinfo`),
|
|
@@ -995,10 +999,10 @@ class AbstractSqliteQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
995
999
|
}
|
|
996
1000
|
return tableColumn;
|
|
997
1001
|
}));
|
|
998
|
-
// find
|
|
1002
|
+
// find foreign key constraints from CREATE TABLE sql
|
|
999
1003
|
let fkResult;
|
|
1000
1004
|
const fkMappings = [];
|
|
1001
|
-
const fkRegex = /CONSTRAINT "([^"]*)" FOREIGN KEY
|
|
1005
|
+
const fkRegex = /CONSTRAINT "([^"]*)" FOREIGN KEY ?\((.*?)\) REFERENCES "([^"]*)"/g;
|
|
1002
1006
|
while ((fkResult = fkRegex.exec(sql)) !== null) {
|
|
1003
1007
|
fkMappings.push({
|
|
1004
1008
|
name: fkResult[1],
|
|
@@ -1031,7 +1035,7 @@ class AbstractSqliteQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1031
1035
|
// find unique constraints from CREATE TABLE sql
|
|
1032
1036
|
let uniqueRegexResult;
|
|
1033
1037
|
const uniqueMappings = [];
|
|
1034
|
-
const uniqueRegex = /CONSTRAINT "([^"]*)" UNIQUE
|
|
1038
|
+
const uniqueRegex = /CONSTRAINT "([^"]*)" UNIQUE ?\((.*?)\)/g;
|
|
1035
1039
|
while ((uniqueRegexResult = uniqueRegex.exec(sql)) !== null) {
|
|
1036
1040
|
uniqueMappings.push({
|
|
1037
1041
|
name: uniqueRegexResult[1],
|
|
@@ -1073,7 +1077,7 @@ class AbstractSqliteQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1073
1077
|
table.uniques = (await Promise.all(tableUniquePromises));
|
|
1074
1078
|
// build checks
|
|
1075
1079
|
let result;
|
|
1076
|
-
const regexp = /CONSTRAINT "([^"]*)" CHECK (\(.*?\))([,]|[)]$)/g;
|
|
1080
|
+
const regexp = /CONSTRAINT "([^"]*)" CHECK ?(\(.*?\))([,]|[)]$)/g;
|
|
1077
1081
|
while ((result = regexp.exec(sql)) !== null) {
|
|
1078
1082
|
table.checks.push(new TableCheck_1.TableCheck({
|
|
1079
1083
|
name: result[1],
|
|
@@ -1113,7 +1117,7 @@ class AbstractSqliteQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1113
1117
|
/**
|
|
1114
1118
|
* Builds create table sql.
|
|
1115
1119
|
*/
|
|
1116
|
-
createTableSql(table, createForeignKeys) {
|
|
1120
|
+
createTableSql(table, createForeignKeys, temporaryTable) {
|
|
1117
1121
|
const primaryColumns = table.columns.filter((column) => column.isPrimary);
|
|
1118
1122
|
const hasAutoIncrement = primaryColumns.find((column) => column.isGenerated && column.generationStrategy === "increment");
|
|
1119
1123
|
const skipPrimary = primaryColumns.length > 1;
|
|
@@ -1124,6 +1128,10 @@ class AbstractSqliteQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1124
1128
|
.join(", ");
|
|
1125
1129
|
const [database] = this.splitTablePath(table.name);
|
|
1126
1130
|
let sql = `CREATE TABLE ${this.escapePath(table.name)} (${columnDefinitions}`;
|
|
1131
|
+
let [databaseNew, tableName] = this.splitTablePath(table.name);
|
|
1132
|
+
const newTableName = temporaryTable
|
|
1133
|
+
? `${databaseNew ? `${databaseNew}.` : ""}${tableName.replace(/^temporary_/, "")}`
|
|
1134
|
+
: table.name;
|
|
1127
1135
|
// need for `addColumn()` method, because it recreates table.
|
|
1128
1136
|
table.columns
|
|
1129
1137
|
.filter((column) => column.isUnique)
|
|
@@ -1141,7 +1149,7 @@ class AbstractSqliteQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1141
1149
|
.map((unique) => {
|
|
1142
1150
|
const uniqueName = unique.name
|
|
1143
1151
|
? unique.name
|
|
1144
|
-
: this.connection.namingStrategy.uniqueConstraintName(
|
|
1152
|
+
: this.connection.namingStrategy.uniqueConstraintName(newTableName, unique.columnNames);
|
|
1145
1153
|
const columnNames = unique.columnNames
|
|
1146
1154
|
.map((columnName) => `"${columnName}"`)
|
|
1147
1155
|
.join(", ");
|
|
@@ -1155,7 +1163,7 @@ class AbstractSqliteQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1155
1163
|
.map((check) => {
|
|
1156
1164
|
const checkName = check.name
|
|
1157
1165
|
? check.name
|
|
1158
|
-
: this.connection.namingStrategy.checkConstraintName(
|
|
1166
|
+
: this.connection.namingStrategy.checkConstraintName(newTableName, check.expression);
|
|
1159
1167
|
return `CONSTRAINT "${checkName}" CHECK (${check.expression})`;
|
|
1160
1168
|
})
|
|
1161
1169
|
.join(", ");
|
|
@@ -1176,7 +1184,7 @@ class AbstractSqliteQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1176
1184
|
.map((columnName) => `"${columnName}"`)
|
|
1177
1185
|
.join(", ");
|
|
1178
1186
|
if (!fk.name)
|
|
1179
|
-
fk.name = this.connection.namingStrategy.foreignKeyName(
|
|
1187
|
+
fk.name = this.connection.namingStrategy.foreignKeyName(newTableName, fk.columnNames, this.getTablePath(fk), fk.referencedColumnNames);
|
|
1180
1188
|
const referencedColumnNames = fk.referencedColumnNames
|
|
1181
1189
|
.map((columnName) => `"${columnName}"`)
|
|
1182
1190
|
.join(", ");
|
|
@@ -1197,8 +1205,7 @@ class AbstractSqliteQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1197
1205
|
sql += `, PRIMARY KEY (${columnNames})`;
|
|
1198
1206
|
}
|
|
1199
1207
|
sql += `)`;
|
|
1200
|
-
|
|
1201
|
-
if (tableMetadata && tableMetadata.withoutRowid) {
|
|
1208
|
+
if (table.withoutRowid) {
|
|
1202
1209
|
sql += " WITHOUT ROWID";
|
|
1203
1210
|
}
|
|
1204
1211
|
return new Query_1.Query(sql);
|
|
@@ -1325,7 +1332,7 @@ class AbstractSqliteQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1325
1332
|
let [, tableNameOld] = this.splitTablePath(oldTable.name);
|
|
1326
1333
|
newTable.name = tableNameNew = `${databaseNew ? `${databaseNew}.` : ""}temporary_${tableNameNew}`;
|
|
1327
1334
|
// create new table
|
|
1328
|
-
upQueries.push(this.createTableSql(newTable, true));
|
|
1335
|
+
upQueries.push(this.createTableSql(newTable, true, true));
|
|
1329
1336
|
downQueries.push(this.dropTableSql(newTable));
|
|
1330
1337
|
// migrate all data from the old table into new table
|
|
1331
1338
|
if (migrateData) {
|