typeorm 0.3.8-dev.e49d0c8 → 0.3.8

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 (106) hide show
  1. package/browser/cli-ts-node-commonjs.js +0 -0
  2. package/browser/cli-ts-node-esm.js +0 -0
  3. package/browser/data-source/DataSource.d.ts +2 -0
  4. package/browser/data-source/DataSource.js +2 -0
  5. package/browser/data-source/DataSource.js.map +1 -1
  6. package/browser/driver/Driver.d.ts +4 -0
  7. package/browser/driver/Driver.js.map +1 -1
  8. package/browser/driver/DriverUtils.d.ts +1 -0
  9. package/browser/driver/DriverUtils.js +5 -0
  10. package/browser/driver/DriverUtils.js.map +1 -1
  11. package/browser/driver/mysql/MysqlDriver.d.ts +4 -0
  12. package/browser/driver/mysql/MysqlDriver.js +1 -0
  13. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  14. package/browser/driver/postgres/PostgresDriver.d.ts +4 -0
  15. package/browser/driver/postgres/PostgresDriver.js +3 -2
  16. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  17. package/browser/driver/postgres/PostgresQueryRunner.d.ts +1 -1
  18. package/browser/driver/postgres/PostgresQueryRunner.js +18 -12
  19. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  20. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +1 -1
  21. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +16 -12
  22. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  23. package/browser/driver/sqlserver/SqlServerConnectionOptions.d.ts +6 -1
  24. package/browser/driver/sqlserver/SqlServerConnectionOptions.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/find-options/FindOneOptions.d.ts +1 -0
  28. package/browser/find-options/FindOneOptions.js.map +1 -1
  29. package/browser/migration/MigrationExecutor.d.ts +8 -0
  30. package/browser/migration/MigrationExecutor.js +13 -5
  31. package/browser/migration/MigrationExecutor.js.map +1 -1
  32. package/browser/persistence/SubjectTopoligicalSorter.js +6 -1
  33. package/browser/persistence/SubjectTopoligicalSorter.js.map +1 -1
  34. package/browser/query-builder/QueryExpressionMap.d.ts +4 -0
  35. package/browser/query-builder/QueryExpressionMap.js +1 -0
  36. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  37. package/browser/query-builder/SelectQueryBuilder.d.ts +4 -0
  38. package/browser/query-builder/SelectQueryBuilder.js +57 -18
  39. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  40. package/browser/query-builder/UpdateQueryBuilder.js +1 -0
  41. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  42. package/browser/schema-builder/options/TableOptions.d.ts +4 -0
  43. package/browser/schema-builder/options/TableOptions.js.map +1 -1
  44. package/browser/schema-builder/table/Table.d.ts +4 -0
  45. package/browser/schema-builder/table/Table.js +8 -0
  46. package/browser/schema-builder/table/Table.js.map +1 -1
  47. package/browser/util/DateUtils.d.ts +1 -1
  48. package/browser/util/DateUtils.js +7 -8
  49. package/browser/util/DateUtils.js.map +1 -1
  50. package/cli-ts-node-commonjs.js +0 -0
  51. package/cli-ts-node-esm.js +0 -0
  52. package/cli.js +0 -0
  53. package/commands/MigrationRevertCommand.d.ts +2 -0
  54. package/commands/MigrationRevertCommand.js +6 -0
  55. package/commands/MigrationRevertCommand.js.map +1 -1
  56. package/commands/MigrationRunCommand.d.ts +2 -0
  57. package/commands/MigrationRunCommand.js +8 -0
  58. package/commands/MigrationRunCommand.js.map +1 -1
  59. package/data-source/DataSource.d.ts +2 -0
  60. package/data-source/DataSource.js +2 -0
  61. package/data-source/DataSource.js.map +1 -1
  62. package/driver/Driver.d.ts +4 -0
  63. package/driver/Driver.js.map +1 -1
  64. package/driver/DriverUtils.d.ts +1 -0
  65. package/driver/DriverUtils.js +5 -0
  66. package/driver/DriverUtils.js.map +1 -1
  67. package/driver/mysql/MysqlDriver.d.ts +4 -0
  68. package/driver/mysql/MysqlDriver.js +1 -0
  69. package/driver/mysql/MysqlDriver.js.map +1 -1
  70. package/driver/postgres/PostgresDriver.d.ts +4 -0
  71. package/driver/postgres/PostgresDriver.js +3 -2
  72. package/driver/postgres/PostgresDriver.js.map +1 -1
  73. package/driver/postgres/PostgresQueryRunner.d.ts +1 -1
  74. package/driver/postgres/PostgresQueryRunner.js +18 -12
  75. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  76. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +1 -1
  77. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +16 -12
  78. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  79. package/driver/sqlserver/SqlServerConnectionOptions.d.ts +6 -1
  80. package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  81. package/entity-manager/EntityManager.js +1 -0
  82. package/entity-manager/EntityManager.js.map +1 -1
  83. package/find-options/FindOneOptions.d.ts +1 -0
  84. package/find-options/FindOneOptions.js.map +1 -1
  85. package/migration/MigrationExecutor.d.ts +8 -0
  86. package/migration/MigrationExecutor.js +13 -5
  87. package/migration/MigrationExecutor.js.map +1 -1
  88. package/package.json +274 -1
  89. package/persistence/SubjectTopoligicalSorter.js +6 -1
  90. package/persistence/SubjectTopoligicalSorter.js.map +1 -1
  91. package/query-builder/QueryExpressionMap.d.ts +4 -0
  92. package/query-builder/QueryExpressionMap.js +1 -0
  93. package/query-builder/QueryExpressionMap.js.map +1 -1
  94. package/query-builder/SelectQueryBuilder.d.ts +4 -0
  95. package/query-builder/SelectQueryBuilder.js +57 -18
  96. package/query-builder/SelectQueryBuilder.js.map +1 -1
  97. package/query-builder/UpdateQueryBuilder.js +1 -0
  98. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  99. package/schema-builder/options/TableOptions.d.ts +4 -0
  100. package/schema-builder/options/TableOptions.js.map +1 -1
  101. package/schema-builder/table/Table.d.ts +4 -0
  102. package/schema-builder/table/Table.js +8 -0
  103. package/schema-builder/table/Table.js.map +1 -1
  104. package/util/DateUtils.d.ts +1 -1
  105. package/util/DateUtils.js +7 -8
  106. 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
  */
@@ -887,8 +887,9 @@ class AbstractSqliteQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
887
887
  this.driver.getAttachedDatabaseHandleByRelativePath(dbTable["database"])
888
888
  ? `${this.driver.getAttachedDatabaseHandleByRelativePath(dbTable["database"])}.${dbTable["name"]}`
889
889
  : dbTable["name"];
890
- const table = new Table_1.Table({ name: tablePath });
891
890
  const sql = dbTable["sql"];
891
+ const withoutRowid = sql.includes("WITHOUT ROWID");
892
+ const table = new Table_1.Table({ name: tablePath, withoutRowid });
892
893
  // load columns and indices
893
894
  const [dbColumns, dbIndices, dbForeignKeys] = await Promise.all([
894
895
  this.loadPragmaRecords(tablePath, `table_xinfo`),
@@ -998,10 +999,10 @@ class AbstractSqliteQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
998
999
  }
999
1000
  return tableColumn;
1000
1001
  }));
1001
- // find unique constraints from CREATE TABLE sql
1002
+ // find foreign key constraints from CREATE TABLE sql
1002
1003
  let fkResult;
1003
1004
  const fkMappings = [];
1004
- const fkRegex = /CONSTRAINT "([^"]*)" FOREIGN KEY \((.*?)\) REFERENCES "([^"]*)" /g;
1005
+ const fkRegex = /CONSTRAINT "([^"]*)" FOREIGN KEY ?\((.*?)\) REFERENCES "([^"]*)"/g;
1005
1006
  while ((fkResult = fkRegex.exec(sql)) !== null) {
1006
1007
  fkMappings.push({
1007
1008
  name: fkResult[1],
@@ -1034,7 +1035,7 @@ class AbstractSqliteQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
1034
1035
  // find unique constraints from CREATE TABLE sql
1035
1036
  let uniqueRegexResult;
1036
1037
  const uniqueMappings = [];
1037
- const uniqueRegex = /CONSTRAINT "([^"]*)" UNIQUE \((.*?)\)/g;
1038
+ const uniqueRegex = /CONSTRAINT "([^"]*)" UNIQUE ?\((.*?)\)/g;
1038
1039
  while ((uniqueRegexResult = uniqueRegex.exec(sql)) !== null) {
1039
1040
  uniqueMappings.push({
1040
1041
  name: uniqueRegexResult[1],
@@ -1076,7 +1077,7 @@ class AbstractSqliteQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
1076
1077
  table.uniques = (await Promise.all(tableUniquePromises));
1077
1078
  // build checks
1078
1079
  let result;
1079
- const regexp = /CONSTRAINT "([^"]*)" CHECK (\(.*?\))([,]|[)]$)/g;
1080
+ const regexp = /CONSTRAINT "([^"]*)" CHECK ?(\(.*?\))([,]|[)]$)/g;
1080
1081
  while ((result = regexp.exec(sql)) !== null) {
1081
1082
  table.checks.push(new TableCheck_1.TableCheck({
1082
1083
  name: result[1],
@@ -1116,7 +1117,7 @@ class AbstractSqliteQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
1116
1117
  /**
1117
1118
  * Builds create table sql.
1118
1119
  */
1119
- createTableSql(table, createForeignKeys) {
1120
+ createTableSql(table, createForeignKeys, temporaryTable) {
1120
1121
  const primaryColumns = table.columns.filter((column) => column.isPrimary);
1121
1122
  const hasAutoIncrement = primaryColumns.find((column) => column.isGenerated && column.generationStrategy === "increment");
1122
1123
  const skipPrimary = primaryColumns.length > 1;
@@ -1127,6 +1128,10 @@ class AbstractSqliteQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
1127
1128
  .join(", ");
1128
1129
  const [database] = this.splitTablePath(table.name);
1129
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;
1130
1135
  // need for `addColumn()` method, because it recreates table.
1131
1136
  table.columns
1132
1137
  .filter((column) => column.isUnique)
@@ -1144,7 +1149,7 @@ class AbstractSqliteQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
1144
1149
  .map((unique) => {
1145
1150
  const uniqueName = unique.name
1146
1151
  ? unique.name
1147
- : this.connection.namingStrategy.uniqueConstraintName(table, unique.columnNames);
1152
+ : this.connection.namingStrategy.uniqueConstraintName(newTableName, unique.columnNames);
1148
1153
  const columnNames = unique.columnNames
1149
1154
  .map((columnName) => `"${columnName}"`)
1150
1155
  .join(", ");
@@ -1158,7 +1163,7 @@ class AbstractSqliteQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
1158
1163
  .map((check) => {
1159
1164
  const checkName = check.name
1160
1165
  ? check.name
1161
- : this.connection.namingStrategy.checkConstraintName(table, check.expression);
1166
+ : this.connection.namingStrategy.checkConstraintName(newTableName, check.expression);
1162
1167
  return `CONSTRAINT "${checkName}" CHECK (${check.expression})`;
1163
1168
  })
1164
1169
  .join(", ");
@@ -1179,7 +1184,7 @@ class AbstractSqliteQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
1179
1184
  .map((columnName) => `"${columnName}"`)
1180
1185
  .join(", ");
1181
1186
  if (!fk.name)
1182
- 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);
1183
1188
  const referencedColumnNames = fk.referencedColumnNames
1184
1189
  .map((columnName) => `"${columnName}"`)
1185
1190
  .join(", ");
@@ -1200,8 +1205,7 @@ class AbstractSqliteQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
1200
1205
  sql += `, PRIMARY KEY (${columnNames})`;
1201
1206
  }
1202
1207
  sql += `)`;
1203
- const tableMetadata = this.connection.entityMetadatas.find((metadata) => this.getTablePath(table) === this.getTablePath(metadata));
1204
- if (tableMetadata && tableMetadata.withoutRowid) {
1208
+ if (table.withoutRowid) {
1205
1209
  sql += " WITHOUT ROWID";
1206
1210
  }
1207
1211
  return new Query_1.Query(sql);
@@ -1328,7 +1332,7 @@ class AbstractSqliteQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
1328
1332
  let [, tableNameOld] = this.splitTablePath(oldTable.name);
1329
1333
  newTable.name = tableNameNew = `${databaseNew ? `${databaseNew}.` : ""}temporary_${tableNameNew}`;
1330
1334
  // create new table
1331
- upQueries.push(this.createTableSql(newTable, true));
1335
+ upQueries.push(this.createTableSql(newTable, true, true));
1332
1336
  downQueries.push(this.dropTableSql(newTable));
1333
1337
  // migrate all data from the old table into new table
1334
1338
  if (migrateData) {