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.
Files changed (93) hide show
  1. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +4 -1
  2. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  3. package/browser/driver/cockroachdb/CockroachQueryRunner.js +4 -1
  4. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  5. package/browser/driver/mysql/MysqlQueryRunner.js +4 -1
  6. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  7. package/browser/driver/oracle/OracleQueryRunner.js +4 -1
  8. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  9. package/browser/driver/postgres/PostgresDriver.js +2 -2
  10. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  11. package/browser/driver/postgres/PostgresQueryRunner.d.ts +1 -1
  12. package/browser/driver/postgres/PostgresQueryRunner.js +22 -13
  13. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  14. package/browser/driver/sap/SapQueryRunner.js +4 -1
  15. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  16. package/browser/driver/spanner/SpannerQueryRunner.js +4 -1
  17. package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -1
  18. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +1 -1
  19. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +20 -13
  20. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  21. package/browser/driver/sqlserver/SqlServerConnectionOptions.d.ts +6 -1
  22. package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  23. package/browser/driver/sqlserver/SqlServerQueryRunner.js +4 -1
  24. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  25. package/browser/entity-manager/EntityManager.js +1 -0
  26. package/browser/entity-manager/EntityManager.js.map +1 -1
  27. package/browser/entity-manager/MongoEntityManager.d.ts +1 -1
  28. package/browser/entity-manager/MongoEntityManager.js +17 -10
  29. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  30. package/browser/persistence/SubjectTopoligicalSorter.js +6 -1
  31. package/browser/persistence/SubjectTopoligicalSorter.js.map +1 -1
  32. package/browser/query-builder/SelectQueryBuilder.js +13 -2
  33. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  34. package/browser/query-builder/UpdateQueryBuilder.js +1 -0
  35. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  36. package/browser/query-runner/BaseQueryRunner.d.ts +5 -0
  37. package/browser/query-runner/BaseQueryRunner.js +7 -0
  38. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  39. package/browser/schema-builder/options/TableOptions.d.ts +4 -0
  40. package/browser/schema-builder/options/TableOptions.js.map +1 -1
  41. package/browser/schema-builder/table/Table.d.ts +4 -0
  42. package/browser/schema-builder/table/Table.js +8 -0
  43. package/browser/schema-builder/table/Table.js.map +1 -1
  44. package/browser/util/DateUtils.d.ts +1 -1
  45. package/browser/util/DateUtils.js +7 -8
  46. package/browser/util/DateUtils.js.map +1 -1
  47. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +4 -1
  48. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  49. package/driver/cockroachdb/CockroachQueryRunner.js +4 -1
  50. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  51. package/driver/mysql/MysqlQueryRunner.js +4 -1
  52. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  53. package/driver/oracle/OracleQueryRunner.js +4 -1
  54. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  55. package/driver/postgres/PostgresDriver.js +2 -2
  56. package/driver/postgres/PostgresDriver.js.map +1 -1
  57. package/driver/postgres/PostgresQueryRunner.d.ts +1 -1
  58. package/driver/postgres/PostgresQueryRunner.js +22 -13
  59. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  60. package/driver/sap/SapQueryRunner.js +4 -1
  61. package/driver/sap/SapQueryRunner.js.map +1 -1
  62. package/driver/spanner/SpannerQueryRunner.js +4 -1
  63. package/driver/spanner/SpannerQueryRunner.js.map +1 -1
  64. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +1 -1
  65. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +20 -13
  66. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  67. package/driver/sqlserver/SqlServerConnectionOptions.d.ts +6 -1
  68. package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  69. package/driver/sqlserver/SqlServerQueryRunner.js +4 -1
  70. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  71. package/entity-manager/EntityManager.js +1 -0
  72. package/entity-manager/EntityManager.js.map +1 -1
  73. package/entity-manager/MongoEntityManager.d.ts +1 -1
  74. package/entity-manager/MongoEntityManager.js +17 -10
  75. package/entity-manager/MongoEntityManager.js.map +1 -1
  76. package/package.json +1 -1
  77. package/persistence/SubjectTopoligicalSorter.js +6 -1
  78. package/persistence/SubjectTopoligicalSorter.js.map +1 -1
  79. package/query-builder/SelectQueryBuilder.js +13 -2
  80. package/query-builder/SelectQueryBuilder.js.map +1 -1
  81. package/query-builder/UpdateQueryBuilder.js +1 -0
  82. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  83. package/query-runner/BaseQueryRunner.d.ts +5 -0
  84. package/query-runner/BaseQueryRunner.js +7 -0
  85. package/query-runner/BaseQueryRunner.js.map +1 -1
  86. package/schema-builder/options/TableOptions.d.ts +4 -0
  87. package/schema-builder/options/TableOptions.js.map +1 -1
  88. package/schema-builder/table/Table.d.ts +4 -0
  89. package/schema-builder/table/Table.js +8 -0
  90. package/schema-builder/table/Table.js.map +1 -1
  91. package/util/DateUtils.d.ts +1 -1
  92. package/util/DateUtils.js +7 -8
  93. 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.connection.namingStrategy.indexName(table, index.columnNames, index.where);
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 unique constraints from CREATE TABLE sql
1002
+ // find foreign key constraints from CREATE TABLE sql
999
1003
  let fkResult;
1000
1004
  const fkMappings = [];
1001
- const fkRegex = /CONSTRAINT "([^"]*)" FOREIGN KEY \((.*?)\) REFERENCES "([^"]*)" /g;
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 \((.*?)\)/g;
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(table, unique.columnNames);
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(table, check.expression);
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(table, fk.columnNames, this.getTablePath(fk), fk.referencedColumnNames);
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
- const tableMetadata = this.connection.entityMetadatas.find((metadata) => this.getTablePath(table) === this.getTablePath(metadata));
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) {