typeorm 0.2.41-dev.1f558b1 → 0.2.41-dev.4e7d32f

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 (85) hide show
  1. package/browser/cache/DbQueryResultCache.js +12 -3
  2. package/browser/cache/DbQueryResultCache.js.map +1 -1
  3. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +33 -39
  4. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  5. package/browser/driver/cockroachdb/CockroachQueryRunner.js +24 -30
  6. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  7. package/browser/driver/mongodb/MongoConnectionOptions.d.ts +4 -0
  8. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  9. package/browser/driver/mongodb/MongoQueryRunner.d.ts +2 -0
  10. package/browser/driver/mongodb/MongoQueryRunner.js +3 -0
  11. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  12. package/browser/driver/mysql/MysqlQueryRunner.js +37 -39
  13. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  14. package/browser/driver/oracle/OracleDriver.js +1 -1
  15. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  16. package/browser/driver/oracle/OracleQueryRunner.js +13 -24
  17. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  18. package/browser/driver/postgres/PostgresDriver.d.ts +1 -0
  19. package/browser/driver/postgres/PostgresDriver.js +16 -7
  20. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  21. package/browser/driver/postgres/PostgresQueryRunner.d.ts +5 -0
  22. package/browser/driver/postgres/PostgresQueryRunner.js +314 -135
  23. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  24. package/browser/driver/sap/SapQueryRunner.js +36 -42
  25. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  26. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +8 -14
  27. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  28. package/browser/driver/sqlserver/SqlServerQueryRunner.js +31 -33
  29. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  30. package/browser/driver/types/MetadataTableType.d.ts +5 -0
  31. package/browser/driver/types/MetadataTableType.js +8 -0
  32. package/browser/driver/types/MetadataTableType.js.map +1 -0
  33. package/browser/migration/MigrationExecutor.js +55 -48
  34. package/browser/migration/MigrationExecutor.js.map +1 -1
  35. package/browser/query-runner/BaseQueryRunner.d.ts +23 -0
  36. package/browser/query-runner/BaseQueryRunner.js +37 -0
  37. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  38. package/browser/query-runner/QueryRunner.d.ts +5 -0
  39. package/browser/query-runner/QueryRunner.js.map +1 -1
  40. package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +5 -1
  41. package/browser/schema-builder/RdbmsSchemaBuilder.js +58 -49
  42. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  43. package/cache/DbQueryResultCache.js +12 -3
  44. package/cache/DbQueryResultCache.js.map +1 -1
  45. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +33 -39
  46. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  47. package/driver/cockroachdb/CockroachQueryRunner.js +24 -30
  48. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  49. package/driver/mongodb/MongoConnectionOptions.d.ts +4 -0
  50. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  51. package/driver/mongodb/MongoQueryRunner.d.ts +2 -0
  52. package/driver/mongodb/MongoQueryRunner.js +3 -0
  53. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  54. package/driver/mysql/MysqlQueryRunner.js +37 -39
  55. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  56. package/driver/oracle/OracleDriver.js +1 -1
  57. package/driver/oracle/OracleDriver.js.map +1 -1
  58. package/driver/oracle/OracleQueryRunner.js +13 -24
  59. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  60. package/driver/postgres/PostgresDriver.d.ts +1 -0
  61. package/driver/postgres/PostgresDriver.js +16 -7
  62. package/driver/postgres/PostgresDriver.js.map +1 -1
  63. package/driver/postgres/PostgresQueryRunner.d.ts +5 -0
  64. package/driver/postgres/PostgresQueryRunner.js +314 -135
  65. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  66. package/driver/sap/SapQueryRunner.js +36 -42
  67. package/driver/sap/SapQueryRunner.js.map +1 -1
  68. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +8 -14
  69. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  70. package/driver/sqlserver/SqlServerQueryRunner.js +31 -33
  71. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  72. package/driver/types/MetadataTableType.d.ts +5 -0
  73. package/driver/types/MetadataTableType.js +11 -0
  74. package/driver/types/MetadataTableType.js.map +1 -0
  75. package/migration/MigrationExecutor.js +55 -48
  76. package/migration/MigrationExecutor.js.map +1 -1
  77. package/package.json +1 -1
  78. package/query-runner/BaseQueryRunner.d.ts +23 -0
  79. package/query-runner/BaseQueryRunner.js +37 -0
  80. package/query-runner/BaseQueryRunner.js.map +1 -1
  81. package/query-runner/QueryRunner.d.ts +5 -0
  82. package/query-runner/QueryRunner.js.map +1 -1
  83. package/schema-builder/RdbmsSchemaBuilder.d.ts +5 -1
  84. package/schema-builder/RdbmsSchemaBuilder.js +58 -49
  85. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
@@ -15,6 +15,7 @@ import { TableCheck } from "../schema-builder/table/TableCheck";
15
15
  import { IsolationLevel } from "../driver/types/IsolationLevel";
16
16
  import { TableExclusion } from "../schema-builder/table/TableExclusion";
17
17
  import { QueryResult } from "./QueryResult";
18
+ import { ReplicationMode } from "../driver/types/ReplicationMode";
18
19
  /**
19
20
  * Runs queries on a single database connection.
20
21
  */
@@ -125,6 +126,10 @@ export interface QueryRunner {
125
126
  * Loads all views from the database and returns them.
126
127
  */
127
128
  getViews(viewPaths?: string[]): Promise<View[]>;
129
+ /**
130
+ * Returns replication mode (ex: `master` or `slave`).
131
+ */
132
+ getReplicationMode(): ReplicationMode;
128
133
  /**
129
134
  * Checks if a database with the given name exist.
130
135
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/query-runner/QueryRunner.ts"],"names":[],"mappings":"","file":"QueryRunner.js","sourcesContent":["import {TableColumn} from \"../schema-builder/table/TableColumn\";\nimport {Table} from \"../schema-builder/table/Table\";\nimport {TableForeignKey} from \"../schema-builder/table/TableForeignKey\";\nimport {TableIndex} from \"../schema-builder/table/TableIndex\";\nimport {Connection} from \"../connection/Connection\";\nimport {ReadStream} from \"../platform/PlatformTools\";\nimport {EntityManager} from \"../entity-manager/EntityManager\";\nimport {ObjectLiteral} from \"../common/ObjectLiteral\";\nimport {SqlInMemory} from \"../driver/SqlInMemory\";\nimport {TableUnique} from \"../schema-builder/table/TableUnique\";\nimport {View} from \"../schema-builder/view/View\";\nimport {Broadcaster} from \"../subscriber/Broadcaster\";\nimport {TableCheck} from \"../schema-builder/table/TableCheck\";\nimport {IsolationLevel} from \"../driver/types/IsolationLevel\";\nimport {TableExclusion} from \"../schema-builder/table/TableExclusion\";\nimport {QueryResult} from \"./QueryResult\";\n\n/**\n * Runs queries on a single database connection.\n */\nexport interface QueryRunner {\n\n /**\n * Connection used by this query runner.\n */\n readonly connection: Connection;\n\n /**\n * Broadcaster used on this query runner to broadcast entity events.\n */\n readonly broadcaster: Broadcaster;\n\n /**\n * Entity manager working only with this query runner.\n */\n readonly manager: EntityManager;\n\n /**\n * Indicates if connection for this query runner is released.\n * Once its released, query runner cannot run queries anymore.\n */\n readonly isReleased: boolean;\n\n /**\n * Indicates if transaction is in progress.\n */\n readonly isTransactionActive: boolean;\n\n /**\n * Stores temporarily user data.\n * Useful for sharing data with subscribers.\n */\n data: ObjectLiteral;\n\n /**\n * All synchronized tables in the database.\n *\n * @deprecated Call `getTables()`\n */\n loadedTables: Table[];\n\n /**\n * All synchronized views in the database.\n *\n * @deprecated Call `getViews()`\n */\n loadedViews: View[];\n\n /**\n * Creates/uses database connection from the connection pool to perform further operations.\n * Returns obtained database connection.\n */\n connect(): Promise<any>;\n\n /**\n * Releases used database connection.\n * You cannot use query runner methods after connection is released.\n */\n release(): Promise<void>;\n\n /**\n * Removes all tables from the currently connected database.\n * Be careful with using this method and avoid using it in production or migrations\n * (because it can clear all your database).\n */\n clearDatabase(database?: string): Promise<void>;\n\n /**\n * Starts transaction.\n */\n startTransaction(isolationLevel?: IsolationLevel): Promise<void>;\n\n /**\n * Commits transaction.\n * Error will be thrown if transaction was not started.\n */\n commitTransaction(): Promise<void>;\n\n /**\n * Rollbacks transaction.\n * Error will be thrown if transaction was not started.\n */\n rollbackTransaction(): Promise<void>;\n\n /**\n * Executes a given SQL query and returns raw database results.\n */\n query(query: string, parameters: any[] | undefined, useStructuredResult: true): Promise<QueryResult>;\n\n /**\n * Executes a given SQL query and returns raw database results.\n */\n query(query: string, parameters?: any[]): Promise<any>;\n\n /**\n * Returns raw data stream.\n */\n stream(query: string, parameters?: any[], onEnd?: Function, onError?: Function): Promise<ReadStream>;\n\n /**\n * Returns all available database names including system databases.\n */\n getDatabases(): Promise<string[]>;\n\n /**\n * Returns all available schema names including system schemas.\n * If database parameter specified, returns schemas of that database.\n * Useful for SQLServer and Postgres only.\n */\n getSchemas(database?: string): Promise<string[]>;\n\n /**\n * Loads a table by a given name from the database.\n */\n getTable(tablePath: string): Promise<Table|undefined>;\n\n /**\n * Loads all tables from the database and returns them.\n */\n getTables(tablePaths?: string[]): Promise<Table[]>;\n\n /**\n * Loads a view by a given name from the database.\n */\n getView(viewPath: string): Promise<View|undefined>;\n\n /**\n * Loads all views from the database and returns them.\n */\n getViews(viewPaths?: string[]): Promise<View[]>;\n\n /**\n * Checks if a database with the given name exist.\n */\n hasDatabase(database: string): Promise<boolean>;\n\n /**\n * Loads currently using database\n */\n getCurrentDatabase(): Promise<string|undefined>;\n\n /**\n * Checks if a schema with the given name exist.\n */\n hasSchema(schema: string): Promise<boolean>;\n\n /**\n * Loads currently using database schema\n */\n getCurrentSchema(): Promise<string|undefined>;\n\n /**\n * Checks if a table with the given name exist.\n */\n hasTable(table: Table|string): Promise<boolean>;\n\n /**\n * Checks if a column exist in the table.\n */\n hasColumn(table: Table|string, columnName: string): Promise<boolean>;\n\n /**\n * Creates a new database.\n */\n createDatabase(database: string, ifNotExist?: boolean): Promise<void>;\n\n /**\n * Drops database.\n */\n dropDatabase(database: string, ifExist?: boolean): Promise<void>;\n\n /**\n * Creates a new table schema.\n */\n createSchema(schemaPath: string, ifNotExist?: boolean): Promise<void>;\n\n /**\n * Drops table schema.\n * For SqlServer can accept schema path (e.g. 'dbName.schemaName') as parameter.\n * If schema path passed, it will drop schema in specified database.\n */\n dropSchema(schemaPath: string, ifExist?: boolean, isCascade?: boolean): Promise<void>;\n\n /**\n * Creates a new table.\n */\n createTable(table: Table, ifNotExist?: boolean, createForeignKeys?: boolean, createIndices?: boolean): Promise<void>;\n\n /**\n * Drops a table.\n */\n dropTable(table: Table|string, ifExist?: boolean, dropForeignKeys?: boolean, dropIndices?: boolean): Promise<void>;\n\n /**\n * Creates a new view.\n */\n createView(view: View, oldView?: View): Promise<void>;\n\n /**\n * Drops a view.\n */\n dropView(view: View|string): Promise<void>;\n\n /**\n * Renames a table.\n */\n renameTable(oldTableOrName: Table|string, newTableName: string): Promise<void>;\n\n /**\n * Adds a new column.\n */\n addColumn(table: Table|string, column: TableColumn): Promise<void>;\n\n /**\n * Adds new columns.\n */\n addColumns(table: Table|string, columns: TableColumn[]): Promise<void>;\n\n /**\n * Renames a column.\n */\n renameColumn(table: Table|string, oldColumnOrName: TableColumn|string, newColumnOrName: TableColumn|string): Promise<void>;\n\n /**\n * Changes a column in the table.\n */\n changeColumn(table: Table|string, oldColumn: TableColumn|string, newColumn: TableColumn): Promise<void>;\n\n /**\n * Changes columns in the table.\n */\n changeColumns(table: Table|string, changedColumns: { oldColumn: TableColumn, newColumn: TableColumn }[]): Promise<void>;\n\n /**\n * Drops a column in the table.\n */\n dropColumn(table: Table|string, column: TableColumn|string): Promise<void>;\n\n /**\n * Drops columns in the table.\n */\n dropColumns(table: Table|string, columns: TableColumn[]|string[]): Promise<void>;\n\n /**\n * Creates a new primary key.\n */\n createPrimaryKey(table: Table|string, columnNames: string[]): Promise<void>;\n\n /**\n * Updates composite primary keys.\n */\n updatePrimaryKeys(table: Table|string, columns: TableColumn[]): Promise<void>;\n\n /**\n * Drops a primary key.\n */\n dropPrimaryKey(table: Table|string): Promise<void>;\n\n /**\n * Creates a new unique constraint.\n */\n createUniqueConstraint(table: Table|string, uniqueConstraint: TableUnique): Promise<void>;\n\n /**\n * Creates new unique constraints.\n */\n createUniqueConstraints(table: Table|string, uniqueConstraints: TableUnique[]): Promise<void>;\n\n /**\n * Drops an unique constraint.\n */\n dropUniqueConstraint(table: Table|string, uniqueOrName: TableUnique|string): Promise<void>;\n\n /**\n * Drops unique constraints.\n */\n dropUniqueConstraints(table: Table|string, uniqueConstraints: TableUnique[]): Promise<void>;\n\n /**\n * Creates a new check constraint.\n */\n createCheckConstraint(table: Table|string, checkConstraint: TableCheck): Promise<void>;\n\n /**\n * Creates new check constraints.\n */\n createCheckConstraints(table: Table|string, checkConstraints: TableCheck[]): Promise<void>;\n\n /**\n * Drops a check constraint.\n */\n dropCheckConstraint(table: Table|string, checkOrName: TableCheck|string): Promise<void>;\n\n /**\n * Drops check constraints.\n */\n dropCheckConstraints(table: Table|string, checkConstraints: TableCheck[]): Promise<void>;\n\n /**\n * Creates a new exclusion constraint.\n */\n createExclusionConstraint(table: Table|string, exclusionConstraint: TableExclusion): Promise<void>;\n\n /**\n * Creates new exclusion constraints.\n */\n createExclusionConstraints(table: Table|string, exclusionConstraints: TableExclusion[]): Promise<void>;\n\n /**\n * Drops a exclusion constraint.\n */\n dropExclusionConstraint(table: Table|string, exclusionOrName: TableExclusion|string): Promise<void>;\n\n /**\n * Drops exclusion constraints.\n */\n dropExclusionConstraints(table: Table|string, exclusionConstraints: TableExclusion[]): Promise<void>;\n\n /**\n * Creates a new foreign key.\n */\n createForeignKey(table: Table|string, foreignKey: TableForeignKey): Promise<void>;\n\n /**\n * Creates new foreign keys.\n */\n createForeignKeys(table: Table|string, foreignKeys: TableForeignKey[]): Promise<void>;\n\n /**\n * Drops a foreign key.\n */\n dropForeignKey(table: Table|string, foreignKeyOrName: TableForeignKey|string): Promise<void>;\n\n /**\n * Drops foreign keys.\n */\n dropForeignKeys(table: Table|string, foreignKeys: TableForeignKey[]): Promise<void>;\n\n /**\n * Creates a new index.\n */\n createIndex(table: Table|string, index: TableIndex): Promise<void>;\n\n /**\n * Creates new indices.\n */\n createIndices(table: Table|string, indices: TableIndex[]): Promise<void>;\n\n /**\n * Drops an index.\n */\n dropIndex(table: Table|string, index: TableIndex|string): Promise<void>;\n\n /**\n * Drops indices.\n */\n dropIndices(table: Table|string, indices: TableIndex[]): Promise<void>;\n\n /**\n * Clears all table contents.\n * Note: this operation uses SQL's TRUNCATE query which cannot be reverted in transactions.\n */\n clearTable(tableName: string): Promise<void>;\n\n /**\n * Enables special query runner mode in which sql queries won't be executed,\n * instead they will be memorized into a special variable inside query runner.\n * You can get memorized sql using getMemorySql() method.\n */\n enableSqlMemory(): void;\n\n /**\n * Disables special query runner mode in which sql queries won't be executed\n * started by calling enableSqlMemory() method.\n *\n * Previously memorized sql will be flushed.\n */\n disableSqlMemory(): void;\n\n /**\n * Flushes all memorized sqls.\n */\n clearSqlMemory(): void;\n\n /**\n * Gets sql stored in the memory. Parameters in the sql are already replaced.\n */\n getMemorySql(): SqlInMemory;\n\n /**\n * Executes up sql queries.\n */\n executeMemoryUpSql(): Promise<void>;\n\n /**\n * Executes down sql queries.\n */\n executeMemoryDownSql(): Promise<void>;\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/query-runner/QueryRunner.ts"],"names":[],"mappings":"","file":"QueryRunner.js","sourcesContent":["import {TableColumn} from \"../schema-builder/table/TableColumn\";\nimport {Table} from \"../schema-builder/table/Table\";\nimport {TableForeignKey} from \"../schema-builder/table/TableForeignKey\";\nimport {TableIndex} from \"../schema-builder/table/TableIndex\";\nimport {Connection} from \"../connection/Connection\";\nimport {ReadStream} from \"../platform/PlatformTools\";\nimport {EntityManager} from \"../entity-manager/EntityManager\";\nimport {ObjectLiteral} from \"../common/ObjectLiteral\";\nimport {SqlInMemory} from \"../driver/SqlInMemory\";\nimport {TableUnique} from \"../schema-builder/table/TableUnique\";\nimport {View} from \"../schema-builder/view/View\";\nimport {Broadcaster} from \"../subscriber/Broadcaster\";\nimport {TableCheck} from \"../schema-builder/table/TableCheck\";\nimport {IsolationLevel} from \"../driver/types/IsolationLevel\";\nimport {TableExclusion} from \"../schema-builder/table/TableExclusion\";\nimport {QueryResult} from \"./QueryResult\";\nimport {ReplicationMode} from \"../driver/types/ReplicationMode\";\n\n/**\n * Runs queries on a single database connection.\n */\nexport interface QueryRunner {\n\n /**\n * Connection used by this query runner.\n */\n readonly connection: Connection;\n\n /**\n * Broadcaster used on this query runner to broadcast entity events.\n */\n readonly broadcaster: Broadcaster;\n\n /**\n * Entity manager working only with this query runner.\n */\n readonly manager: EntityManager;\n\n /**\n * Indicates if connection for this query runner is released.\n * Once its released, query runner cannot run queries anymore.\n */\n readonly isReleased: boolean;\n\n /**\n * Indicates if transaction is in progress.\n */\n readonly isTransactionActive: boolean;\n\n /**\n * Stores temporarily user data.\n * Useful for sharing data with subscribers.\n */\n data: ObjectLiteral;\n\n /**\n * All synchronized tables in the database.\n *\n * @deprecated Call `getTables()`\n */\n loadedTables: Table[];\n\n /**\n * All synchronized views in the database.\n *\n * @deprecated Call `getViews()`\n */\n loadedViews: View[];\n\n /**\n * Creates/uses database connection from the connection pool to perform further operations.\n * Returns obtained database connection.\n */\n connect(): Promise<any>;\n\n /**\n * Releases used database connection.\n * You cannot use query runner methods after connection is released.\n */\n release(): Promise<void>;\n\n /**\n * Removes all tables from the currently connected database.\n * Be careful with using this method and avoid using it in production or migrations\n * (because it can clear all your database).\n */\n clearDatabase(database?: string): Promise<void>;\n\n /**\n * Starts transaction.\n */\n startTransaction(isolationLevel?: IsolationLevel): Promise<void>;\n\n /**\n * Commits transaction.\n * Error will be thrown if transaction was not started.\n */\n commitTransaction(): Promise<void>;\n\n /**\n * Rollbacks transaction.\n * Error will be thrown if transaction was not started.\n */\n rollbackTransaction(): Promise<void>;\n\n /**\n * Executes a given SQL query and returns raw database results.\n */\n query(query: string, parameters: any[] | undefined, useStructuredResult: true): Promise<QueryResult>;\n\n /**\n * Executes a given SQL query and returns raw database results.\n */\n query(query: string, parameters?: any[]): Promise<any>;\n\n /**\n * Returns raw data stream.\n */\n stream(query: string, parameters?: any[], onEnd?: Function, onError?: Function): Promise<ReadStream>;\n\n /**\n * Returns all available database names including system databases.\n */\n getDatabases(): Promise<string[]>;\n\n /**\n * Returns all available schema names including system schemas.\n * If database parameter specified, returns schemas of that database.\n * Useful for SQLServer and Postgres only.\n */\n getSchemas(database?: string): Promise<string[]>;\n\n /**\n * Loads a table by a given name from the database.\n */\n getTable(tablePath: string): Promise<Table|undefined>;\n\n /**\n * Loads all tables from the database and returns them.\n */\n getTables(tablePaths?: string[]): Promise<Table[]>;\n\n /**\n * Loads a view by a given name from the database.\n */\n getView(viewPath: string): Promise<View|undefined>;\n\n /**\n * Loads all views from the database and returns them.\n */\n getViews(viewPaths?: string[]): Promise<View[]>;\n\n /**\n * Returns replication mode (ex: `master` or `slave`).\n */\n getReplicationMode(): ReplicationMode;\n\n /**\n * Checks if a database with the given name exist.\n */\n hasDatabase(database: string): Promise<boolean>;\n\n /**\n * Loads currently using database\n */\n getCurrentDatabase(): Promise<string|undefined>;\n\n /**\n * Checks if a schema with the given name exist.\n */\n hasSchema(schema: string): Promise<boolean>;\n\n /**\n * Loads currently using database schema\n */\n getCurrentSchema(): Promise<string|undefined>;\n\n /**\n * Checks if a table with the given name exist.\n */\n hasTable(table: Table|string): Promise<boolean>;\n\n /**\n * Checks if a column exist in the table.\n */\n hasColumn(table: Table|string, columnName: string): Promise<boolean>;\n\n /**\n * Creates a new database.\n */\n createDatabase(database: string, ifNotExist?: boolean): Promise<void>;\n\n /**\n * Drops database.\n */\n dropDatabase(database: string, ifExist?: boolean): Promise<void>;\n\n /**\n * Creates a new table schema.\n */\n createSchema(schemaPath: string, ifNotExist?: boolean): Promise<void>;\n\n /**\n * Drops table schema.\n * For SqlServer can accept schema path (e.g. 'dbName.schemaName') as parameter.\n * If schema path passed, it will drop schema in specified database.\n */\n dropSchema(schemaPath: string, ifExist?: boolean, isCascade?: boolean): Promise<void>;\n\n /**\n * Creates a new table.\n */\n createTable(table: Table, ifNotExist?: boolean, createForeignKeys?: boolean, createIndices?: boolean): Promise<void>;\n\n /**\n * Drops a table.\n */\n dropTable(table: Table|string, ifExist?: boolean, dropForeignKeys?: boolean, dropIndices?: boolean): Promise<void>;\n\n /**\n * Creates a new view.\n */\n createView(view: View, oldView?: View): Promise<void>;\n\n /**\n * Drops a view.\n */\n dropView(view: View|string): Promise<void>;\n\n /**\n * Renames a table.\n */\n renameTable(oldTableOrName: Table|string, newTableName: string): Promise<void>;\n\n /**\n * Adds a new column.\n */\n addColumn(table: Table|string, column: TableColumn): Promise<void>;\n\n /**\n * Adds new columns.\n */\n addColumns(table: Table|string, columns: TableColumn[]): Promise<void>;\n\n /**\n * Renames a column.\n */\n renameColumn(table: Table|string, oldColumnOrName: TableColumn|string, newColumnOrName: TableColumn|string): Promise<void>;\n\n /**\n * Changes a column in the table.\n */\n changeColumn(table: Table|string, oldColumn: TableColumn|string, newColumn: TableColumn): Promise<void>;\n\n /**\n * Changes columns in the table.\n */\n changeColumns(table: Table|string, changedColumns: { oldColumn: TableColumn, newColumn: TableColumn }[]): Promise<void>;\n\n /**\n * Drops a column in the table.\n */\n dropColumn(table: Table|string, column: TableColumn|string): Promise<void>;\n\n /**\n * Drops columns in the table.\n */\n dropColumns(table: Table|string, columns: TableColumn[]|string[]): Promise<void>;\n\n /**\n * Creates a new primary key.\n */\n createPrimaryKey(table: Table|string, columnNames: string[]): Promise<void>;\n\n /**\n * Updates composite primary keys.\n */\n updatePrimaryKeys(table: Table|string, columns: TableColumn[]): Promise<void>;\n\n /**\n * Drops a primary key.\n */\n dropPrimaryKey(table: Table|string): Promise<void>;\n\n /**\n * Creates a new unique constraint.\n */\n createUniqueConstraint(table: Table|string, uniqueConstraint: TableUnique): Promise<void>;\n\n /**\n * Creates new unique constraints.\n */\n createUniqueConstraints(table: Table|string, uniqueConstraints: TableUnique[]): Promise<void>;\n\n /**\n * Drops an unique constraint.\n */\n dropUniqueConstraint(table: Table|string, uniqueOrName: TableUnique|string): Promise<void>;\n\n /**\n * Drops unique constraints.\n */\n dropUniqueConstraints(table: Table|string, uniqueConstraints: TableUnique[]): Promise<void>;\n\n /**\n * Creates a new check constraint.\n */\n createCheckConstraint(table: Table|string, checkConstraint: TableCheck): Promise<void>;\n\n /**\n * Creates new check constraints.\n */\n createCheckConstraints(table: Table|string, checkConstraints: TableCheck[]): Promise<void>;\n\n /**\n * Drops a check constraint.\n */\n dropCheckConstraint(table: Table|string, checkOrName: TableCheck|string): Promise<void>;\n\n /**\n * Drops check constraints.\n */\n dropCheckConstraints(table: Table|string, checkConstraints: TableCheck[]): Promise<void>;\n\n /**\n * Creates a new exclusion constraint.\n */\n createExclusionConstraint(table: Table|string, exclusionConstraint: TableExclusion): Promise<void>;\n\n /**\n * Creates new exclusion constraints.\n */\n createExclusionConstraints(table: Table|string, exclusionConstraints: TableExclusion[]): Promise<void>;\n\n /**\n * Drops a exclusion constraint.\n */\n dropExclusionConstraint(table: Table|string, exclusionOrName: TableExclusion|string): Promise<void>;\n\n /**\n * Drops exclusion constraints.\n */\n dropExclusionConstraints(table: Table|string, exclusionConstraints: TableExclusion[]): Promise<void>;\n\n /**\n * Creates a new foreign key.\n */\n createForeignKey(table: Table|string, foreignKey: TableForeignKey): Promise<void>;\n\n /**\n * Creates new foreign keys.\n */\n createForeignKeys(table: Table|string, foreignKeys: TableForeignKey[]): Promise<void>;\n\n /**\n * Drops a foreign key.\n */\n dropForeignKey(table: Table|string, foreignKeyOrName: TableForeignKey|string): Promise<void>;\n\n /**\n * Drops foreign keys.\n */\n dropForeignKeys(table: Table|string, foreignKeys: TableForeignKey[]): Promise<void>;\n\n /**\n * Creates a new index.\n */\n createIndex(table: Table|string, index: TableIndex): Promise<void>;\n\n /**\n * Creates new indices.\n */\n createIndices(table: Table|string, indices: TableIndex[]): Promise<void>;\n\n /**\n * Drops an index.\n */\n dropIndex(table: Table|string, index: TableIndex|string): Promise<void>;\n\n /**\n * Drops indices.\n */\n dropIndices(table: Table|string, indices: TableIndex[]): Promise<void>;\n\n /**\n * Clears all table contents.\n * Note: this operation uses SQL's TRUNCATE query which cannot be reverted in transactions.\n */\n clearTable(tableName: string): Promise<void>;\n\n /**\n * Enables special query runner mode in which sql queries won't be executed,\n * instead they will be memorized into a special variable inside query runner.\n * You can get memorized sql using getMemorySql() method.\n */\n enableSqlMemory(): void;\n\n /**\n * Disables special query runner mode in which sql queries won't be executed\n * started by calling enableSqlMemory() method.\n *\n * Previously memorized sql will be flushed.\n */\n disableSqlMemory(): void;\n\n /**\n * Flushes all memorized sqls.\n */\n clearSqlMemory(): void;\n\n /**\n * Gets sql stored in the memory. Parameters in the sql are already replaced.\n */\n getMemorySql(): SqlInMemory;\n\n /**\n * Executes up sql queries.\n */\n executeMemoryUpSql(): Promise<void>;\n\n /**\n * Executes down sql queries.\n */\n executeMemoryDownSql(): Promise<void>;\n\n}\n"],"sourceRoot":".."}
@@ -32,6 +32,10 @@ export declare class RdbmsSchemaBuilder implements SchemaBuilder {
32
32
  * Creates complete schemas for the given entity metadatas.
33
33
  */
34
34
  build(): Promise<void>;
35
+ /**
36
+ * If the schema contains views, create the typeorm_metadata table if it doesn't exist yet
37
+ */
38
+ createMetadataTableIfNecessary(queryRunner: QueryRunner): Promise<void>;
35
39
  /**
36
40
  * Returns sql queries to be executed by schema builder.
37
41
  */
@@ -131,5 +135,5 @@ export declare class RdbmsSchemaBuilder implements SchemaBuilder {
131
135
  /**
132
136
  * Creates typeorm service table for storing user defined Views.
133
137
  */
134
- protected createTypeormMetadataTable(): Promise<void>;
138
+ protected createTypeormMetadataTable(queryRunner: QueryRunner): Promise<void>;
135
139
  }
@@ -59,55 +59,70 @@ var RdbmsSchemaBuilder = /** @class */ (function () {
59
59
  _a.sent();
60
60
  _a.label = 2;
61
61
  case 2:
62
- _a.trys.push([2, 12, 18, 20]);
63
- if (!(this.viewEntityToSyncMetadatas.length > 0)) return [3 /*break*/, 4];
64
- return [4 /*yield*/, this.createTypeormMetadataTable()];
62
+ _a.trys.push([2, 11, 17, 19]);
63
+ return [4 /*yield*/, this.createMetadataTableIfNecessary(this.queryRunner)];
65
64
  case 3:
66
65
  _a.sent();
67
- _a.label = 4;
68
- case 4:
69
66
  tablePaths = this.entityToSyncMetadatas.map(function (metadata) { return _this.getTablePath(metadata); });
70
67
  return [4 /*yield*/, this.queryRunner.getTables(tablePaths)];
71
- case 5:
68
+ case 4:
72
69
  _a.sent();
73
70
  return [4 /*yield*/, this.queryRunner.getViews([])];
74
- case 6:
71
+ case 5:
75
72
  _a.sent();
76
73
  return [4 /*yield*/, this.executeSchemaSyncOperationsInProperOrder()];
77
- case 7:
74
+ case 6:
78
75
  _a.sent();
79
- if (!this.connection.queryResultCache) return [3 /*break*/, 9];
76
+ if (!this.connection.queryResultCache) return [3 /*break*/, 8];
80
77
  return [4 /*yield*/, this.connection.queryResultCache.synchronize(this.queryRunner)];
81
- case 8:
78
+ case 7:
82
79
  _a.sent();
83
- _a.label = 9;
84
- case 9:
85
- if (!isUsingTransactions) return [3 /*break*/, 11];
80
+ _a.label = 8;
81
+ case 8:
82
+ if (!isUsingTransactions) return [3 /*break*/, 10];
86
83
  return [4 /*yield*/, this.queryRunner.commitTransaction()];
87
- case 10:
84
+ case 9:
88
85
  _a.sent();
89
- _a.label = 11;
90
- case 11: return [3 /*break*/, 20];
91
- case 12:
86
+ _a.label = 10;
87
+ case 10: return [3 /*break*/, 19];
88
+ case 11:
92
89
  error_1 = _a.sent();
93
- _a.label = 13;
94
- case 13:
95
- _a.trys.push([13, 16, , 17]);
96
- if (!isUsingTransactions) return [3 /*break*/, 15];
90
+ _a.label = 12;
91
+ case 12:
92
+ _a.trys.push([12, 15, , 16]);
93
+ if (!isUsingTransactions) return [3 /*break*/, 14];
97
94
  return [4 /*yield*/, this.queryRunner.rollbackTransaction()];
98
- case 14:
95
+ case 13:
99
96
  _a.sent();
100
- _a.label = 15;
101
- case 15: return [3 /*break*/, 17];
102
- case 16:
97
+ _a.label = 14;
98
+ case 14: return [3 /*break*/, 16];
99
+ case 15:
103
100
  rollbackError_1 = _a.sent();
104
- return [3 /*break*/, 17];
105
- case 17: throw error_1;
106
- case 18: return [4 /*yield*/, this.queryRunner.release()];
107
- case 19:
101
+ return [3 /*break*/, 16];
102
+ case 16: throw error_1;
103
+ case 17: return [4 /*yield*/, this.queryRunner.release()];
104
+ case 18:
108
105
  _a.sent();
109
106
  return [7 /*endfinally*/];
110
- case 20: return [2 /*return*/];
107
+ case 19: return [2 /*return*/];
108
+ }
109
+ });
110
+ });
111
+ };
112
+ /**
113
+ * If the schema contains views, create the typeorm_metadata table if it doesn't exist yet
114
+ */
115
+ RdbmsSchemaBuilder.prototype.createMetadataTableIfNecessary = function (queryRunner) {
116
+ return __awaiter(this, void 0, void 0, function () {
117
+ return __generator(this, function (_a) {
118
+ switch (_a.label) {
119
+ case 0:
120
+ if (!(this.viewEntityToSyncMetadatas.length > 0 || (this.connection.driver instanceof PostgresDriver && this.connection.driver.isGeneratedColumnsSupported))) return [3 /*break*/, 2];
121
+ return [4 /*yield*/, this.createTypeormMetadataTable(queryRunner)];
122
+ case 1:
123
+ _a.sent();
124
+ _a.label = 2;
125
+ case 2: return [2 /*return*/];
111
126
  }
112
127
  });
113
128
  });
@@ -125,40 +140,34 @@ var RdbmsSchemaBuilder = /** @class */ (function () {
125
140
  this.queryRunner = this.connection.createQueryRunner();
126
141
  _a.label = 1;
127
142
  case 1:
128
- _a.trys.push([1, , 9, 11]);
129
- if (!(this.viewEntityToSyncMetadatas.length > 0)) return [3 /*break*/, 3];
130
- return [4 /*yield*/, this.createTypeormMetadataTable()];
131
- case 2:
132
- _a.sent();
133
- _a.label = 3;
134
- case 3:
143
+ _a.trys.push([1, , 7, 9]);
135
144
  tablePaths = this.entityToSyncMetadatas.map(function (metadata) { return _this.getTablePath(metadata); });
136
145
  return [4 /*yield*/, this.queryRunner.getTables(tablePaths)];
137
- case 4:
146
+ case 2:
138
147
  _a.sent();
139
148
  return [4 /*yield*/, this.queryRunner.getViews([])];
140
- case 5:
149
+ case 3:
141
150
  _a.sent();
142
151
  this.queryRunner.enableSqlMemory();
143
152
  return [4 /*yield*/, this.executeSchemaSyncOperationsInProperOrder()];
144
- case 6:
153
+ case 4:
145
154
  _a.sent();
146
- if (!this.connection.queryResultCache) return [3 /*break*/, 8];
155
+ if (!this.connection.queryResultCache) return [3 /*break*/, 6];
147
156
  return [4 /*yield*/, this.connection.queryResultCache.synchronize(this.queryRunner)];
148
- case 7:
157
+ case 5:
149
158
  _a.sent();
150
- _a.label = 8;
151
- case 8: return [2 /*return*/, this.queryRunner.getMemorySql()];
152
- case 9:
159
+ _a.label = 6;
160
+ case 6: return [2 /*return*/, this.queryRunner.getMemorySql()];
161
+ case 7:
153
162
  // its important to disable this mode despite the fact we are release query builder
154
163
  // because there exist drivers which reuse same query runner. Also its important to disable
155
164
  // sql memory after call of getMemorySql() method because last one flushes sql memory.
156
165
  this.queryRunner.disableSqlMemory();
157
166
  return [4 /*yield*/, this.queryRunner.release()];
158
- case 10:
167
+ case 8:
159
168
  _a.sent();
160
169
  return [7 /*endfinally*/];
161
- case 11: return [2 /*return*/];
170
+ case 9: return [2 /*return*/];
162
171
  }
163
172
  });
164
173
  });
@@ -1784,7 +1793,7 @@ var RdbmsSchemaBuilder = /** @class */ (function () {
1784
1793
  /**
1785
1794
  * Creates typeorm service table for storing user defined Views.
1786
1795
  */
1787
- RdbmsSchemaBuilder.prototype.createTypeormMetadataTable = function () {
1796
+ RdbmsSchemaBuilder.prototype.createTypeormMetadataTable = function (queryRunner) {
1788
1797
  return __awaiter(this, void 0, void 0, function () {
1789
1798
  var schema, database, typeormMetadataTable;
1790
1799
  return __generator(this, function (_a) {
@@ -1793,7 +1802,7 @@ var RdbmsSchemaBuilder = /** @class */ (function () {
1793
1802
  schema = this.currentSchema;
1794
1803
  database = this.currentDatabase;
1795
1804
  typeormMetadataTable = this.connection.driver.buildTableName("typeorm_metadata", schema, database);
1796
- return [4 /*yield*/, this.queryRunner.createTable(new Table({
1805
+ return [4 /*yield*/, queryRunner.createTable(new Table({
1797
1806
  database: database,
1798
1807
  schema: schema,
1799
1808
  name: typeormMetadataTable,