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
  */
@@ -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.connection.namingStrategy.indexName(table, index.columnNames, index.where);
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 unique constraints from CREATE TABLE sql
999
+ // find foreign key constraints from CREATE TABLE sql
996
1000
  let fkResult;
997
1001
  const fkMappings = [];
998
- const fkRegex = /CONSTRAINT "([^"]*)" FOREIGN KEY \((.*?)\) REFERENCES "([^"]*)" /g;
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 \((.*?)\)/g;
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(table, unique.columnNames);
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(table, check.expression);
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(table, fk.columnNames, this.getTablePath(fk), fk.referencedColumnNames);
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
- const tableMetadata = this.connection.entityMetadatas.find((metadata) => this.getTablePath(table) === this.getTablePath(metadata));
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) {