typeorm 0.3.17 → 0.3.18-dev.122c897
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.
- package/README.md +23 -23
- package/browser/driver/DriverUtils.js +2 -5
- package/browser/driver/DriverUtils.js.map +1 -1
- package/browser/driver/sap/SapDriver.d.ts +8 -0
- package/browser/driver/sap/SapDriver.js +14 -3
- package/browser/driver/sap/SapDriver.js.map +1 -1
- package/browser/driver/sap/SapQueryRunner.d.ts +5 -14
- package/browser/driver/sap/SapQueryRunner.js +53 -55
- package/browser/driver/sap/SapQueryRunner.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +2 -1
- package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerConnectionOptions.d.ts +5 -0
- package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerQueryRunner.js +13 -0
- package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.d.ts +12 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js +3 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js.map +1 -0
- package/browser/entity-manager/EntityManager.js +5 -1
- package/browser/entity-manager/EntityManager.js.map +1 -1
- package/browser/entity-manager/MongoEntityManager.d.ts +5 -1
- package/browser/entity-manager/MongoEntityManager.js +7 -0
- package/browser/entity-manager/MongoEntityManager.js.map +1 -1
- package/browser/entity-schema/EntitySchemaOptions.d.ts +4 -0
- package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaTransformer.js +7 -0
- package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
- package/browser/error/QueryFailedError.d.ts +3 -3
- package/browser/error/QueryFailedError.js.map +1 -1
- package/browser/find-options/FindOptionsUtils.js +1 -1
- package/browser/find-options/FindOptionsUtils.js.map +1 -1
- package/browser/find-options/FindOptionsWhere.d.ts +1 -1
- package/browser/find-options/FindOptionsWhere.js.map +1 -1
- package/browser/index.d.ts +1 -0
- package/browser/index.js +1 -0
- package/browser/index.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataBuilder.js +13 -0
- package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/browser/naming-strategy/DefaultNamingStrategy.d.ts +0 -1
- package/browser/naming-strategy/DefaultNamingStrategy.js +0 -3
- package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
- package/browser/naming-strategy/NamingStrategyInterface.d.ts +0 -4
- package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
- package/browser/persistence/Subject.js +2 -1
- package/browser/persistence/Subject.js.map +1 -1
- package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js +6 -2
- package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
- package/browser/platform/PlatformTools.js +2 -0
- package/browser/platform/PlatformTools.js.map +1 -1
- package/browser/query-builder/QueryBuilder.js +1 -1
- package/browser/query-builder/QueryBuilder.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilder.js +2 -0
- package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
- package/browser/repository/MongoRepository.d.ts +5 -1
- package/browser/repository/MongoRepository.js +6 -0
- package/browser/repository/MongoRepository.js.map +1 -1
- package/browser/repository/Repository.d.ts +1 -1
- package/browser/repository/Repository.js +9 -5
- package/browser/repository/Repository.js.map +1 -1
- package/commands/CommandUtils.js +6 -1
- package/commands/CommandUtils.js.map +1 -1
- package/commands/EntityCreateCommand.d.ts +3 -0
- package/commands/EntityCreateCommand.js +7 -0
- package/commands/EntityCreateCommand.js.map +1 -1
- package/commands/InitCommand.js +1 -1
- package/commands/InitCommand.js.map +1 -1
- package/commands/MigrationCreateCommand.d.ts +5 -1
- package/commands/MigrationCreateCommand.js +6 -1
- package/commands/MigrationCreateCommand.js.map +1 -1
- package/commands/MigrationGenerateCommand.d.ts +5 -1
- package/commands/MigrationGenerateCommand.js +8 -1
- package/commands/MigrationGenerateCommand.js.map +1 -1
- package/commands/SubscriberCreateCommand.d.ts +3 -0
- package/commands/SubscriberCreateCommand.js +7 -0
- package/commands/SubscriberCreateCommand.js.map +1 -1
- package/driver/DriverUtils.js +2 -5
- package/driver/DriverUtils.js.map +1 -1
- package/driver/sap/SapDriver.d.ts +8 -0
- package/driver/sap/SapDriver.js +15 -4
- package/driver/sap/SapDriver.js.map +1 -1
- package/driver/sap/SapQueryRunner.d.ts +5 -14
- package/driver/sap/SapQueryRunner.js +53 -55
- package/driver/sap/SapQueryRunner.js.map +1 -1
- package/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +2 -1
- package/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
- package/driver/sqlserver/SqlServerConnectionOptions.d.ts +5 -0
- package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
- package/driver/sqlserver/SqlServerQueryRunner.js +13 -0
- package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.d.ts +12 -0
- package/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js +4 -0
- package/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js.map +1 -0
- package/entity-manager/EntityManager.js +5 -1
- package/entity-manager/EntityManager.js.map +1 -1
- package/entity-manager/MongoEntityManager.d.ts +5 -1
- package/entity-manager/MongoEntityManager.js +7 -0
- package/entity-manager/MongoEntityManager.js.map +1 -1
- package/entity-schema/EntitySchemaOptions.d.ts +4 -0
- package/entity-schema/EntitySchemaOptions.js.map +1 -1
- package/entity-schema/EntitySchemaTransformer.js +7 -0
- package/entity-schema/EntitySchemaTransformer.js.map +1 -1
- package/error/QueryFailedError.d.ts +3 -3
- package/error/QueryFailedError.js.map +1 -1
- package/find-options/FindOptionsUtils.js +1 -1
- package/find-options/FindOptionsUtils.js.map +1 -1
- package/find-options/FindOptionsWhere.d.ts +1 -1
- package/find-options/FindOptionsWhere.js.map +1 -1
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/index.mjs +2 -0
- package/metadata-builder/EntityMetadataBuilder.js +13 -0
- package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/naming-strategy/DefaultNamingStrategy.d.ts +0 -1
- package/naming-strategy/DefaultNamingStrategy.js +0 -3
- package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
- package/naming-strategy/NamingStrategyInterface.d.ts +0 -4
- package/naming-strategy/NamingStrategyInterface.js.map +1 -1
- package/package.json +1 -271
- package/persistence/Subject.js +2 -1
- package/persistence/Subject.js.map +1 -1
- package/persistence/subject-builder/ManyToManySubjectBuilder.js +6 -2
- package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
- package/platform/PlatformTools.js +2 -0
- package/platform/PlatformTools.js.map +1 -1
- package/query-builder/QueryBuilder.js +1 -1
- package/query-builder/QueryBuilder.js.map +1 -1
- package/query-builder/SelectQueryBuilder.js +2 -0
- package/query-builder/SelectQueryBuilder.js.map +1 -1
- package/repository/MongoRepository.d.ts +5 -1
- package/repository/MongoRepository.js +6 -0
- package/repository/MongoRepository.js.map +1 -1
- package/repository/Repository.d.ts +1 -1
- package/repository/Repository.js +9 -5
- package/repository/Repository.js.map +1 -1
- package/typeorm-model-shim.js +61 -53
|
@@ -194,7 +194,19 @@ export class SapQueryRunner extends BaseQueryRunner {
|
|
|
194
194
|
* Returns raw data stream.
|
|
195
195
|
*/
|
|
196
196
|
async stream(query, parameters, onEnd, onError) {
|
|
197
|
-
|
|
197
|
+
if (this.isReleased)
|
|
198
|
+
throw new QueryRunnerAlreadyReleasedError();
|
|
199
|
+
const databaseConnection = await this.connect();
|
|
200
|
+
this.driver.connection.logger.logQuery(query, parameters, this);
|
|
201
|
+
const prepareAsync = promisify(databaseConnection.prepare).bind(databaseConnection);
|
|
202
|
+
const statement = await prepareAsync(query);
|
|
203
|
+
const resultSet = statement.executeQuery(parameters);
|
|
204
|
+
const stream = this.driver.streamClient.createObjectStream(resultSet);
|
|
205
|
+
if (onEnd)
|
|
206
|
+
stream.on("end", onEnd);
|
|
207
|
+
if (onError)
|
|
208
|
+
stream.on("error", onError);
|
|
209
|
+
return stream;
|
|
198
210
|
}
|
|
199
211
|
/**
|
|
200
212
|
* Returns all available database names including system databases.
|
|
@@ -262,7 +274,7 @@ export class SapQueryRunner extends BaseQueryRunner {
|
|
|
262
274
|
if (!parsedTableName.schema) {
|
|
263
275
|
parsedTableName.schema = await this.getCurrentSchema();
|
|
264
276
|
}
|
|
265
|
-
const sql = `SELECT * FROM "SYS"."TABLE_COLUMNS" WHERE "SCHEMA_NAME" = ${parsedTableName.schema} AND "TABLE_NAME" = ${parsedTableName.tableName} AND "COLUMN_NAME" = '${columnName}'`;
|
|
277
|
+
const sql = `SELECT * FROM "SYS"."TABLE_COLUMNS" WHERE "SCHEMA_NAME" = '${parsedTableName.schema}' AND "TABLE_NAME" = '${parsedTableName.tableName}' AND "COLUMN_NAME" = '${columnName}'`;
|
|
266
278
|
const result = await this.query(sql);
|
|
267
279
|
return result.length ? true : false;
|
|
268
280
|
}
|
|
@@ -744,9 +756,15 @@ export class SapQueryRunner extends BaseQueryRunner {
|
|
|
744
756
|
clonedTable.columns[clonedTable.columns.indexOf(oldTableColumn)].name = newColumn.name;
|
|
745
757
|
oldColumn.name = newColumn.name;
|
|
746
758
|
}
|
|
747
|
-
if (this.isColumnChanged(oldColumn, newColumn)) {
|
|
748
|
-
upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER (${this.buildCreateColumnSql(newColumn
|
|
749
|
-
|
|
759
|
+
if (this.isColumnChanged(oldColumn, newColumn, true)) {
|
|
760
|
+
upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER (${this.buildCreateColumnSql(newColumn, !(oldColumn.default === null ||
|
|
761
|
+
oldColumn.default === undefined), !oldColumn.isNullable)})`));
|
|
762
|
+
downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER (${this.buildCreateColumnSql(oldColumn, !(newColumn.default === null ||
|
|
763
|
+
newColumn.default === undefined), !newColumn.isNullable)})`));
|
|
764
|
+
}
|
|
765
|
+
else if (oldColumn.comment !== newColumn.comment) {
|
|
766
|
+
upQueries.push(new Query(`COMMENT ON COLUMN ${this.escapePath(table)}."${oldColumn.name}" IS ${this.escapeComment(newColumn.comment)}`));
|
|
767
|
+
downQueries.push(new Query(`COMMENT ON COLUMN ${this.escapePath(table)}."${newColumn.name}" IS ${this.escapeComment(oldColumn.comment)}`));
|
|
750
768
|
}
|
|
751
769
|
if (newColumn.isPrimary !== oldColumn.isPrimary) {
|
|
752
770
|
const primaryColumns = clonedTable.primaryColumns;
|
|
@@ -818,24 +836,6 @@ export class SapQueryRunner extends BaseQueryRunner {
|
|
|
818
836
|
downQueries.push(this.createIndexSql(table, uniqueIndex));
|
|
819
837
|
}
|
|
820
838
|
}
|
|
821
|
-
if (newColumn.default !== oldColumn.default) {
|
|
822
|
-
if (newColumn.default !== null &&
|
|
823
|
-
newColumn.default !== undefined) {
|
|
824
|
-
upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER ("${newColumn.name}" ${this.connection.driver.createFullType(newColumn)} DEFAULT ${newColumn.default})`));
|
|
825
|
-
if (oldColumn.default !== null &&
|
|
826
|
-
oldColumn.default !== undefined) {
|
|
827
|
-
downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER ("${oldColumn.name}" ${this.connection.driver.createFullType(oldColumn)} DEFAULT ${oldColumn.default})`));
|
|
828
|
-
}
|
|
829
|
-
else {
|
|
830
|
-
downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER ("${oldColumn.name}" ${this.connection.driver.createFullType(oldColumn)} DEFAULT NULL)`));
|
|
831
|
-
}
|
|
832
|
-
}
|
|
833
|
-
else if (oldColumn.default !== null &&
|
|
834
|
-
oldColumn.default !== undefined) {
|
|
835
|
-
upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER ("${newColumn.name}" ${this.connection.driver.createFullType(newColumn)} DEFAULT NULL)`));
|
|
836
|
-
downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER ("${oldColumn.name}" ${this.connection.driver.createFullType(oldColumn)} DEFAULT ${oldColumn.default})`));
|
|
837
|
-
}
|
|
838
|
-
}
|
|
839
839
|
await this.executeQueries(upQueries, downQueries);
|
|
840
840
|
this.replaceCachedTable(table, clonedTable);
|
|
841
841
|
}
|
|
@@ -1620,7 +1620,9 @@ export class SapQueryRunner extends BaseQueryRunner {
|
|
|
1620
1620
|
dbColumn["DEFAULT_VALUE"];
|
|
1621
1621
|
}
|
|
1622
1622
|
}
|
|
1623
|
-
|
|
1623
|
+
if (dbColumn["COMMENTS"]) {
|
|
1624
|
+
tableColumn.comment = dbColumn["COMMENTS"];
|
|
1625
|
+
}
|
|
1624
1626
|
if (dbColumn["character_set_name"])
|
|
1625
1627
|
tableColumn.charset =
|
|
1626
1628
|
dbColumn["character_set_name"];
|
|
@@ -1954,6 +1956,16 @@ export class SapQueryRunner extends BaseQueryRunner {
|
|
|
1954
1956
|
: foreignKeyOrName;
|
|
1955
1957
|
return new Query(`ALTER TABLE ${this.escapePath(tableOrName)} DROP CONSTRAINT "${foreignKeyName}"`);
|
|
1956
1958
|
}
|
|
1959
|
+
/**
|
|
1960
|
+
* Escapes a given comment so it's safe to include in a query.
|
|
1961
|
+
*/
|
|
1962
|
+
escapeComment(comment) {
|
|
1963
|
+
if (!comment) {
|
|
1964
|
+
return "NULL";
|
|
1965
|
+
}
|
|
1966
|
+
comment = comment.replace(/'/g, "''").replace(/\u0000/g, ""); // Null bytes aren't allowed in comments
|
|
1967
|
+
return `'${comment}'`;
|
|
1968
|
+
}
|
|
1957
1969
|
/**
|
|
1958
1970
|
* Escapes given table or view path.
|
|
1959
1971
|
*/
|
|
@@ -1964,49 +1976,35 @@ export class SapQueryRunner extends BaseQueryRunner {
|
|
|
1964
1976
|
}
|
|
1965
1977
|
return `"${tableName}"`;
|
|
1966
1978
|
}
|
|
1967
|
-
/**
|
|
1968
|
-
* Concat database name and schema name to the foreign key name.
|
|
1969
|
-
* Needs because FK name is relevant to the schema and database.
|
|
1970
|
-
*/
|
|
1971
|
-
buildForeignKeyName(fkName, schemaName, dbName) {
|
|
1972
|
-
let joinedFkName = fkName;
|
|
1973
|
-
if (schemaName)
|
|
1974
|
-
joinedFkName = schemaName + "." + joinedFkName;
|
|
1975
|
-
if (dbName)
|
|
1976
|
-
joinedFkName = dbName + "." + joinedFkName;
|
|
1977
|
-
return joinedFkName;
|
|
1978
|
-
}
|
|
1979
|
-
/**
|
|
1980
|
-
* Removes parenthesis around default value.
|
|
1981
|
-
* Sql server returns default value with parenthesis around, e.g.
|
|
1982
|
-
* ('My text') - for string
|
|
1983
|
-
* ((1)) - for number
|
|
1984
|
-
* (newsequentialId()) - for function
|
|
1985
|
-
*/
|
|
1986
|
-
removeParenthesisFromDefault(defaultValue) {
|
|
1987
|
-
if (defaultValue.substr(0, 1) !== "(")
|
|
1988
|
-
return defaultValue;
|
|
1989
|
-
const normalizedDefault = defaultValue.substr(1, defaultValue.lastIndexOf(")") - 1);
|
|
1990
|
-
return this.removeParenthesisFromDefault(normalizedDefault);
|
|
1991
|
-
}
|
|
1992
1979
|
/**
|
|
1993
1980
|
* Builds a query for create column.
|
|
1994
1981
|
*/
|
|
1995
|
-
buildCreateColumnSql(column) {
|
|
1982
|
+
buildCreateColumnSql(column, explicitDefault, explicitNullable) {
|
|
1996
1983
|
let c = `"${column.name}" ` + this.connection.driver.createFullType(column);
|
|
1997
1984
|
if (column.charset)
|
|
1998
1985
|
c += " CHARACTER SET " + column.charset;
|
|
1999
1986
|
if (column.collation)
|
|
2000
1987
|
c += " COLLATE " + column.collation;
|
|
2001
|
-
if (column.default !== undefined && column.default !== null)
|
|
2002
|
-
// DEFAULT must be placed before NOT NULL
|
|
1988
|
+
if (column.default !== undefined && column.default !== null) {
|
|
2003
1989
|
c += " DEFAULT " + column.default;
|
|
2004
|
-
|
|
1990
|
+
}
|
|
1991
|
+
else if (explicitDefault) {
|
|
1992
|
+
c += " DEFAULT NULL";
|
|
1993
|
+
}
|
|
1994
|
+
if (!column.isGenerated) {
|
|
2005
1995
|
// NOT NULL is not supported with GENERATED
|
|
2006
|
-
|
|
1996
|
+
if (column.isNullable !== true)
|
|
1997
|
+
c += " NOT NULL";
|
|
1998
|
+
else if (explicitNullable)
|
|
1999
|
+
c += " NULL";
|
|
2000
|
+
}
|
|
2007
2001
|
if (column.isGenerated === true &&
|
|
2008
|
-
column.generationStrategy === "increment")
|
|
2002
|
+
column.generationStrategy === "increment") {
|
|
2009
2003
|
c += " GENERATED ALWAYS AS IDENTITY";
|
|
2004
|
+
}
|
|
2005
|
+
if (column.comment) {
|
|
2006
|
+
c += ` COMMENT ${this.escapeComment(column.comment)}`;
|
|
2007
|
+
}
|
|
2010
2008
|
return c;
|
|
2011
2009
|
}
|
|
2012
2010
|
}
|