knex-schema-inspector
Advanced tools
Comparing version 1.5.3 to 1.5.4
@@ -16,4 +16,4 @@ import { Knex } from 'knex'; | ||
default_value: string | null; | ||
is_unique: 'YES' | 'NO'; | ||
is_primary_key: 'YES' | 'NO'; | ||
is_unique: true | null; | ||
is_primary_key: true | null; | ||
has_auto_increment: 'YES' | 'NO'; | ||
@@ -20,0 +20,0 @@ foreign_key_table: string | null; |
@@ -53,3 +53,3 @@ "use strict"; | ||
return __assign(__assign({}, rawColumn), { default_value: parseDefaultValue(rawColumn.default_value) || | ||
parseDefaultValue(rawColumn.generation_expression), is_generated: !!rawColumn.is_generated, is_unique: rawColumn.is_unique === 'YES', is_primary_key: rawColumn.is_primary_key === 'YES', is_nullable: rawColumn.is_nullable === 'YES', has_auto_increment: rawColumn.has_auto_increment === 'YES', numeric_precision: rawColumn.numeric_precision || null, numeric_scale: rawColumn.numeric_precision || null }); | ||
parseDefaultValue(rawColumn.generation_expression), is_generated: !!rawColumn.is_generated, is_unique: rawColumn.is_unique === true, is_primary_key: rawColumn.is_primary_key === true, is_nullable: rawColumn.is_nullable === 'YES', has_auto_increment: rawColumn.has_auto_increment === 'YES', numeric_precision: rawColumn.numeric_precision || null, numeric_scale: rawColumn.numeric_scale || null }); | ||
} | ||
@@ -222,3 +222,3 @@ exports.rawColumnToColumn = rawColumnToColumn; | ||
query = this.knex | ||
.select(this.knex.raw("\n [o].[name] AS [table],\n [c].[name] AS [name],\n [t].[name] AS [data_type],\n [c].[max_length] AS [max_length],\n [c].[precision] AS [numeric_precision],\n [c].[scale] AS [numeric_scale],\n CASE WHEN [c].[is_nullable] = 0 THEN\n 'NO'\n ELSE\n 'YES'\n END AS [is_nullable],\n COALESCE(\n object_definition ([c].[default_object_id]),\n [cc].[definition]\n ) AS [default_value],\n CASE [i].[is_unique]\n WHEN 1 THEN\n 'YES'\n ELSE\n 'NO'\n END AS [is_unique],\n CASE [i].[is_primary_key]\n WHEN 1 THEN\n 'YES'\n ELSE\n 'NO'\n END AS [is_primary_key],\n CASE [c].[is_identity]\n WHEN 1 THEN\n 'YES'\n ELSE\n 'NO'\n END AS [has_auto_increment],\n OBJECT_NAME ([fk].[referenced_object_id]) AS [foreign_key_table],\n COL_NAME ([fk].[referenced_object_id],\n [fk].[referenced_column_id]) AS [foreign_key_column],\n [cc].[is_computed] as [is_generated]")) | ||
.select(this.knex.raw("\n [o].[name] AS [table],\n [c].[name] AS [name],\n [t].[name] AS [data_type],\n [c].[max_length] AS [max_length],\n [c].[precision] AS [numeric_precision],\n [c].[scale] AS [numeric_scale],\n CASE WHEN [c].[is_nullable] = 0 THEN\n 'NO'\n ELSE\n 'YES'\n END AS [is_nullable],\n COALESCE(\n object_definition ([c].[default_object_id]),\n [cc].[definition]\n ) AS [default_value],\n [i].[is_primary_key],\n [i].[is_unique],\n CASE [c].[is_identity]\n WHEN 1 THEN\n 'YES'\n ELSE\n 'NO'\n END AS [has_auto_increment],\n OBJECT_NAME ([fk].[referenced_object_id]) AS [foreign_key_table],\n COL_NAME ([fk].[referenced_object_id],\n [fk].[referenced_column_id]) AS [foreign_key_column],\n [cc].[is_computed] as [is_generated]")) | ||
.from(this.knex.raw("??.[sys].[columns] [c]", [dbName])) | ||
@@ -229,6 +229,6 @@ .joinRaw("JOIN [sys].[types] [t] ON [c].[user_type_id] = [t].[user_type_id]") | ||
.joinRaw("LEFT JOIN [sys].[computed_columns] AS [cc] ON [cc].[object_id] = [c].[object_id] AND [cc].[column_id] = [c].[column_id]") | ||
.joinRaw("LEFT JOIN [sys].[index_columns] [ic] ON [ic].[object_id] = [c].[object_id] AND [ic].[column_id] = [c].[column_id]") | ||
.joinRaw("LEFT JOIN [sys].[indexes] AS [i] ON [i].[object_id] = [c].[object_id] AND [i].[index_id] = [ic].[index_id]") | ||
.joinRaw("LEFT JOIN [sys].[foreign_key_columns] AS [fk] ON [fk].[parent_object_id] = [c].[object_id] AND [fk].[parent_column_id] = [c].[column_id]") | ||
.where({ 's.name': this.schema }); | ||
.joinRaw("LEFT JOIN (\n SELECT\n [ic].[object_id],\n [ic].[column_id],\n [ix].[is_unique],\n [ix].[is_primary_key],\n ROW_NUMBER() OVER (\n PARTITION BY [ic].[object_id],\n [ic].[column_id] ORDER BY [ix].[is_primary_key] DESC,\n [ix].[is_unique] DESC\n ) AS index_priority\n FROM\n [sys].[index_columns] [ic]\n JOIN [sys].[indexes] AS [ix] ON [ix].[object_id] = [ic].[object_id]\n AND [ix].[index_id] = [ic].[index_id]\n ) AS [i] ON [i].[object_id] = [c].[object_id] AND [i].[column_id] = [c].[column_id]") | ||
.where({ 's.name': this.schema }) | ||
.andWhereRaw("ISNULL([i].index_priority, 1) = 1"); | ||
if (table) { | ||
@@ -247,2 +247,3 @@ query.andWhere({ 'o.name': table }); | ||
records = _a.sent(); | ||
console.log(records); | ||
return [2 /*return*/, records.map(rawColumnToColumn)]; | ||
@@ -249,0 +250,0 @@ } |
@@ -69,4 +69,2 @@ "use strict"; | ||
comment: rawColumn.COLUMN_COMMENT, | ||
// onDelete: rawColumn.DELETE_RULE, | ||
// onUpdate: rawColumn.UPDATE_RULE, | ||
}; | ||
@@ -73,0 +71,0 @@ } |
@@ -23,4 +23,4 @@ import { Knex } from 'knex'; | ||
default_value: string | null; | ||
is_unique: 'YES' | 'NO'; | ||
is_primary_key: 'YES' | 'NO'; | ||
is_unique: true | null; | ||
is_primary_key: true | null; | ||
has_auto_increment: 'YES' | 'NO'; | ||
@@ -39,8 +39,8 @@ foreign_key_table: string | null; | ||
is_generated: !!rawColumn.is_generated, | ||
is_unique: rawColumn.is_unique === 'YES', | ||
is_primary_key: rawColumn.is_primary_key === 'YES', | ||
is_unique: rawColumn.is_unique === true, | ||
is_primary_key: rawColumn.is_primary_key === true, | ||
is_nullable: rawColumn.is_nullable === 'YES', | ||
has_auto_increment: rawColumn.has_auto_increment === 'YES', | ||
numeric_precision: rawColumn.numeric_precision || null, | ||
numeric_scale: rawColumn.numeric_precision || null, | ||
numeric_scale: rawColumn.numeric_scale || null, | ||
}; | ||
@@ -217,14 +217,4 @@ } | ||
) AS [default_value], | ||
CASE [i].[is_unique] | ||
WHEN 1 THEN | ||
'YES' | ||
ELSE | ||
'NO' | ||
END AS [is_unique], | ||
CASE [i].[is_primary_key] | ||
WHEN 1 THEN | ||
'YES' | ||
ELSE | ||
'NO' | ||
END AS [is_primary_key], | ||
[i].[is_primary_key], | ||
[i].[is_unique], | ||
CASE [c].[is_identity] | ||
@@ -251,11 +241,24 @@ WHEN 1 THEN | ||
.joinRaw( | ||
`LEFT JOIN [sys].[index_columns] [ic] ON [ic].[object_id] = [c].[object_id] AND [ic].[column_id] = [c].[column_id]` | ||
`LEFT JOIN [sys].[foreign_key_columns] AS [fk] ON [fk].[parent_object_id] = [c].[object_id] AND [fk].[parent_column_id] = [c].[column_id]` | ||
) | ||
.joinRaw( | ||
`LEFT JOIN [sys].[indexes] AS [i] ON [i].[object_id] = [c].[object_id] AND [i].[index_id] = [ic].[index_id]` | ||
`LEFT JOIN ( | ||
SELECT | ||
[ic].[object_id], | ||
[ic].[column_id], | ||
[ix].[is_unique], | ||
[ix].[is_primary_key], | ||
ROW_NUMBER() OVER ( | ||
PARTITION BY [ic].[object_id], | ||
[ic].[column_id] ORDER BY [ix].[is_primary_key] DESC, | ||
[ix].[is_unique] DESC | ||
) AS index_priority | ||
FROM | ||
[sys].[index_columns] [ic] | ||
JOIN [sys].[indexes] AS [ix] ON [ix].[object_id] = [ic].[object_id] | ||
AND [ix].[index_id] = [ic].[index_id] | ||
) AS [i] ON [i].[object_id] = [c].[object_id] AND [i].[column_id] = [c].[column_id]` | ||
) | ||
.joinRaw( | ||
`LEFT JOIN [sys].[foreign_key_columns] AS [fk] ON [fk].[parent_object_id] = [c].[object_id] AND [fk].[parent_column_id] = [c].[column_id]` | ||
) | ||
.where({ 's.name': this.schema }); | ||
.where({ 's.name': this.schema }) | ||
.andWhereRaw(`ISNULL([i].index_priority, 1) = 1`); | ||
@@ -276,2 +279,4 @@ if (table) { | ||
console.log(records); | ||
return records.map(rawColumnToColumn); | ||
@@ -278,0 +283,0 @@ } |
@@ -56,4 +56,2 @@ import { Knex } from 'knex'; | ||
comment: rawColumn.COLUMN_COMMENT, | ||
// onDelete: rawColumn.DELETE_RULE, | ||
// onUpdate: rawColumn.UPDATE_RULE, | ||
}; | ||
@@ -60,0 +58,0 @@ } |
{ | ||
"name": "knex-schema-inspector", | ||
"version": "1.5.3", | ||
"version": "1.5.4", | ||
"description": "Utility for extracting information about existing DB schema", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
@@ -119,3 +119,3 @@ import knex, { Knex } from 'knex'; | ||
numeric_precision: 10, | ||
numeric_scale: 10, | ||
numeric_scale: null, | ||
is_generated: false, | ||
@@ -184,3 +184,3 @@ is_nullable: false, | ||
numeric_precision: 10, | ||
numeric_scale: 10, | ||
numeric_scale: null, | ||
is_generated: false, | ||
@@ -201,3 +201,3 @@ is_nullable: true, | ||
numeric_precision: 19, | ||
numeric_scale: 19, | ||
numeric_scale: null, | ||
is_generated: false, | ||
@@ -218,3 +218,3 @@ is_nullable: true, | ||
numeric_precision: 10, | ||
numeric_scale: 10, | ||
numeric_scale: null, | ||
is_generated: false, | ||
@@ -235,3 +235,3 @@ is_nullable: true, | ||
numeric_precision: 10, | ||
numeric_scale: 10, | ||
numeric_scale: null, | ||
is_generated: false, | ||
@@ -252,3 +252,3 @@ is_nullable: false, | ||
numeric_precision: 10, | ||
numeric_scale: 10, | ||
numeric_scale: null, | ||
is_generated: false, | ||
@@ -333,3 +333,3 @@ is_nullable: false, | ||
numeric_precision: 19, | ||
numeric_scale: 19, | ||
numeric_scale: null, | ||
is_generated: false, | ||
@@ -354,3 +354,3 @@ is_nullable: true, | ||
numeric_precision: 10, | ||
numeric_scale: 10, | ||
numeric_scale: null, | ||
is_generated: false, | ||
@@ -419,3 +419,3 @@ is_nullable: false, | ||
numeric_precision: 10, | ||
numeric_scale: 10, | ||
numeric_scale: null, | ||
is_generated: false, | ||
@@ -436,3 +436,3 @@ is_nullable: true, | ||
numeric_precision: 19, | ||
numeric_scale: 19, | ||
numeric_scale: null, | ||
is_generated: false, | ||
@@ -453,3 +453,3 @@ is_nullable: true, | ||
numeric_precision: 10, | ||
numeric_scale: 10, | ||
numeric_scale: null, | ||
is_generated: false, | ||
@@ -456,0 +456,0 @@ is_nullable: true, |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
289183
6294