diff --git a/src/driver/aurora-data-api/AuroraDataApiQueryRunner.ts b/src/driver/aurora-data-api/AuroraDataApiQueryRunner.ts index 82e9a7f9f4a..09dd086428b 100644 --- a/src/driver/aurora-data-api/AuroraDataApiQueryRunner.ts +++ b/src/driver/aurora-data-api/AuroraDataApiQueryRunner.ts @@ -283,7 +283,7 @@ export class AuroraDataApiQueryRunner extends BaseQueryRunner implements QueryRu /** * Creates a new table schema. */ - async createSchema(schema: string, ifNotExist?: boolean): Promise { + async createSchema(schemaPath: string, ifNotExist?: boolean): Promise { throw new TypeORMError(`Schema create queries are not supported by MySql driver.`); } diff --git a/src/driver/cockroachdb/CockroachQueryRunner.ts b/src/driver/cockroachdb/CockroachQueryRunner.ts index b142391341e..72b7006fa35 100644 --- a/src/driver/cockroachdb/CockroachQueryRunner.ts +++ b/src/driver/cockroachdb/CockroachQueryRunner.ts @@ -390,7 +390,9 @@ export class CockroachQueryRunner extends BaseQueryRunner implements QueryRunner /** * Creates a new table schema. */ - async createSchema(schema: string, ifNotExist?: boolean): Promise { + async createSchema(schemaPath: string, ifNotExist?: boolean): Promise { + const schema = schemaPath.indexOf(".") === -1 ? schemaPath : schemaPath.split(".")[1]; + const up = ifNotExist ? `CREATE SCHEMA IF NOT EXISTS "${schema}"` : `CREATE SCHEMA "${schema}"`; const down = `DROP SCHEMA "${schema}" CASCADE`; await this.executeQueries(new Query(up), new Query(down)); @@ -400,7 +402,8 @@ export class CockroachQueryRunner extends BaseQueryRunner implements QueryRunner * Drops table schema. */ async dropSchema(schemaPath: string, ifExist?: boolean, isCascade?: boolean): Promise { - const schema = schemaPath.indexOf(".") === -1 ? schemaPath : schemaPath.split(".")[0]; + const schema = schemaPath.indexOf(".") === -1 ? schemaPath : schemaPath.split(".")[1]; + const up = ifExist ? `DROP SCHEMA IF EXISTS "${schema}" ${isCascade ? "CASCADE" : ""}` : `DROP SCHEMA "${schema}" ${isCascade ? "CASCADE" : ""}`; const down = `CREATE SCHEMA "${schema}"`; await this.executeQueries(new Query(up), new Query(down)); diff --git a/src/driver/mongodb/MongoQueryRunner.ts b/src/driver/mongodb/MongoQueryRunner.ts index b57f821d433..228c3906b23 100644 --- a/src/driver/mongodb/MongoQueryRunner.ts +++ b/src/driver/mongodb/MongoQueryRunner.ts @@ -566,7 +566,7 @@ export class MongoQueryRunner implements QueryRunner { /** * Creates a new table schema. */ - async createSchema(schema: string, ifNotExist?: boolean): Promise { + async createSchema(schemaPath: string, ifNotExist?: boolean): Promise { throw new TypeORMError(`Schema create queries are not supported by MongoDB driver.`); } diff --git a/src/driver/mysql/MysqlQueryRunner.ts b/src/driver/mysql/MysqlQueryRunner.ts index 366b1d9f529..c4fcf803ccf 100644 --- a/src/driver/mysql/MysqlQueryRunner.ts +++ b/src/driver/mysql/MysqlQueryRunner.ts @@ -332,7 +332,7 @@ export class MysqlQueryRunner extends BaseQueryRunner implements QueryRunner { /** * Creates a new table schema. */ - async createSchema(schema: string, ifNotExist?: boolean): Promise { + async createSchema(schemaPath: string, ifNotExist?: boolean): Promise { throw new TypeORMError(`Schema create queries are not supported by MySql driver.`); } diff --git a/src/driver/oracle/OracleQueryRunner.ts b/src/driver/oracle/OracleQueryRunner.ts index cffe9492019..f58a9008856 100644 --- a/src/driver/oracle/OracleQueryRunner.ts +++ b/src/driver/oracle/OracleQueryRunner.ts @@ -340,7 +340,7 @@ export class OracleQueryRunner extends BaseQueryRunner implements QueryRunner { /** * Creates a new table schema. */ - async createSchema(schemas: string, ifNotExist?: boolean): Promise { + async createSchema(schemaPath: string, ifNotExist?: boolean): Promise { throw new TypeORMError(`Schema create queries are not supported by Oracle driver.`); } diff --git a/src/driver/postgres/PostgresQueryRunner.ts b/src/driver/postgres/PostgresQueryRunner.ts index 3b065ff706e..e01d2d45ada 100644 --- a/src/driver/postgres/PostgresQueryRunner.ts +++ b/src/driver/postgres/PostgresQueryRunner.ts @@ -388,7 +388,9 @@ export class PostgresQueryRunner extends BaseQueryRunner implements QueryRunner /** * Creates a new table schema. */ - async createSchema(schema: string, ifNotExist?: boolean): Promise { + async createSchema(schemaPath: string, ifNotExist?: boolean): Promise { + const schema = schemaPath.indexOf(".") === -1 ? schemaPath : schemaPath.split(".")[1]; + const up = ifNotExist ? `CREATE SCHEMA IF NOT EXISTS "${schema}"` : `CREATE SCHEMA "${schema}"`; const down = `DROP SCHEMA "${schema}" CASCADE`; await this.executeQueries(new Query(up), new Query(down)); @@ -398,7 +400,8 @@ export class PostgresQueryRunner extends BaseQueryRunner implements QueryRunner * Drops table schema. */ async dropSchema(schemaPath: string, ifExist?: boolean, isCascade?: boolean): Promise { - const schema = schemaPath.indexOf(".") === -1 ? schemaPath : schemaPath.split(".")[0]; + const schema = schemaPath.indexOf(".") === -1 ? schemaPath : schemaPath.split(".")[1]; + const up = ifExist ? `DROP SCHEMA IF EXISTS "${schema}" ${isCascade ? "CASCADE" : ""}` : `DROP SCHEMA "${schema}" ${isCascade ? "CASCADE" : ""}`; const down = `CREATE SCHEMA "${schema}"`; await this.executeQueries(new Query(up), new Query(down)); diff --git a/src/driver/sap/SapQueryRunner.ts b/src/driver/sap/SapQueryRunner.ts index a813e6e7dca..711309babd4 100644 --- a/src/driver/sap/SapQueryRunner.ts +++ b/src/driver/sap/SapQueryRunner.ts @@ -352,7 +352,9 @@ export class SapQueryRunner extends BaseQueryRunner implements QueryRunner { /** * Creates a new table schema. */ - async createSchema(schema: string, ifNotExist?: boolean): Promise { + async createSchema(schemaPath: string, ifNotExist?: boolean): Promise { + const schema = schemaPath.indexOf(".") === -1 ? schemaPath : schemaPath.split(".")[1]; + let exist = false; if (ifNotExist) { const result = await this.query(`SELECT * FROM "SYS"."SCHEMAS" WHERE "SCHEMA_NAME" = '${schema}'`); diff --git a/src/driver/sqlite-abstract/AbstractSqliteQueryRunner.ts b/src/driver/sqlite-abstract/AbstractSqliteQueryRunner.ts index e2ce33a2bb7..bf817b91181 100644 --- a/src/driver/sqlite-abstract/AbstractSqliteQueryRunner.ts +++ b/src/driver/sqlite-abstract/AbstractSqliteQueryRunner.ts @@ -225,7 +225,7 @@ export abstract class AbstractSqliteQueryRunner extends BaseQueryRunner implemen /** * Creates a new table schema. */ - async createSchema(schema: string, ifNotExist?: boolean): Promise { + async createSchema(schemaPath: string, ifNotExist?: boolean): Promise { return Promise.resolve(); }