knex-schema-inspector
Advanced tools
Comparing version 0.0.16 to 0.0.17
@@ -173,3 +173,3 @@ "use strict"; | ||
query = this.knex | ||
.select('c.TABLE_NAME', 'c.COLUMN_NAME', 'c.COLUMN_DEFAULT', 'c.DATA_TYPE', 'c.CHARACTER_MAXIMUM_LENGTH', 'c.IS_NULLABLE', 'c.COLUMN_KEY', 'c.EXTRA', 'c.COLLATION_NAME', 'c.COLUMN_COMMENT', 'fk.REFERENCED_TABLE_NAME', 'fk.REFERENCED_COLUMN_NAME', 'fk.CONSTRAINT_NAME', 'rc.UPDATE_RULE', 'rc.DELETE_RULE', 'rc.MATCH_OPTION') | ||
.select('c.TABLE_NAME', 'c.COLUMN_NAME', 'c.COLUMN_DEFAULT', 'c.DATA_TYPE', 'c.CHARACTER_MAXIMUM_LENGTH', 'c.IS_NULLABLE', 'c.COLLATION_NAME', 'fk.TABLE_NAME as REFERENCED_TABLE_NAME', 'fk.COLUMN_NAME as REFERENCED_COLUMN_NAME', 'fk.CONSTRAINT_NAME', 'rc.UPDATE_RULE', 'rc.DELETE_RULE', 'rc.MATCH_OPTION') | ||
.from('INFORMATION_SCHEMA.COLUMNS as c') | ||
@@ -179,9 +179,10 @@ .leftJoin('INFORMATION_SCHEMA.KEY_COLUMN_USAGE as fk', function () { | ||
.andOn('fk.COLUMN_NAME', '=', 'c.COLUMN_NAME') | ||
.andOn('fk.CONSTRAINT_SCHEMA', '=', 'c.TABLE_SCHEMA'); | ||
.andOn('fk.CONSTRAINT_CATALOG', '=', 'c.TABLE_CATALOG'); | ||
}) | ||
.leftJoin('INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS as rc', function () { | ||
this.on('rc.TABLE_NAME', '=', 'fk.TABLE_NAME') | ||
this.on('rc.CONSTRAINT_CATALOG', '=', 'fk.CONSTRAINT_CATALOG') | ||
.andOn('rc.CONSTRAINT_NAME', '=', 'fk.CONSTRAINT_NAME') | ||
.andOn('rc.CONSTRAINT_SCHEMA', '=', 'fk.CONSTRAINT_SCHEMA'); | ||
}) | ||
.joinRaw("\n LEFT JOIN\n (SELECT\n COLUMNPROPERTY(object_id(TABLE_NAME), COLUMN_NAME, 'IsIdentity') as EXTRA,\n TABLE_NAME,\n COLUMN_NAME,\n TABLE_CATALOG\n FROM\n INFORMATION_SCHEMA.COLUMNS\n WHERE\n COLUMNPROPERTY(object_id(TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1) AS ac\n ON [c].[TABLE_NAME] = [ac].[TABLE_NAME]\n AND [c].[TABLE_CATALOG] = [ac].[TABLE_CATALOG]\n AND [c].[COLUMN_NAME] = [ac].[COLUMN_NAME]\n ") | ||
.where({ | ||
@@ -210,3 +211,2 @@ 'c.TABLE_CATALOG': this.knex.client.database(), | ||
foreign_key_table: rawColumn.REFERENCED_TABLE_NAME, | ||
comment: rawColumn.COLUMN_COMMENT, | ||
}]; | ||
@@ -228,3 +228,2 @@ case 2: return [4 /*yield*/, query]; | ||
foreign_key_table: rawColumn.REFERENCED_TABLE_NAME, | ||
comment: rawColumn.COLUMN_COMMENT, | ||
}; | ||
@@ -231,0 +230,0 @@ })]; |
@@ -20,5 +20,5 @@ import Knex from 'knex'; | ||
COLLATION_NAME: string | null; | ||
COLUMN_COMMENT: string | null; | ||
REFERENCED_TABLE_NAME: string | null; | ||
REFERENCED_COLUMN_NAME: string | null; | ||
EXTRA: string | null; | ||
UPDATE_RULE: string | null; | ||
@@ -29,3 +29,2 @@ DELETE_RULE: string | null; | ||
COLUMN_KEY: 'PRI' | null; | ||
EXTRA: 'auto_increment' | null; | ||
CONSTRAINT_NAME: 'PRIMARY' | null; | ||
@@ -152,8 +151,5 @@ }; | ||
'c.IS_NULLABLE', | ||
'c.COLUMN_KEY', | ||
'c.EXTRA', | ||
'c.COLLATION_NAME', | ||
'c.COLUMN_COMMENT', | ||
'fk.REFERENCED_TABLE_NAME', | ||
'fk.REFERENCED_COLUMN_NAME', | ||
'fk.TABLE_NAME as REFERENCED_TABLE_NAME', | ||
'fk.COLUMN_NAME as REFERENCED_COLUMN_NAME', | ||
'fk.CONSTRAINT_NAME', | ||
@@ -168,3 +164,3 @@ 'rc.UPDATE_RULE', | ||
.andOn('fk.COLUMN_NAME', '=', 'c.COLUMN_NAME') | ||
.andOn('fk.CONSTRAINT_SCHEMA', '=', 'c.TABLE_SCHEMA'); | ||
.andOn('fk.CONSTRAINT_CATALOG', '=', 'c.TABLE_CATALOG'); | ||
}) | ||
@@ -174,3 +170,3 @@ .leftJoin( | ||
function () { | ||
this.on('rc.TABLE_NAME', '=', 'fk.TABLE_NAME') | ||
this.on('rc.CONSTRAINT_CATALOG', '=', 'fk.CONSTRAINT_CATALOG') | ||
.andOn('rc.CONSTRAINT_NAME', '=', 'fk.CONSTRAINT_NAME') | ||
@@ -180,2 +176,19 @@ .andOn('rc.CONSTRAINT_SCHEMA', '=', 'fk.CONSTRAINT_SCHEMA'); | ||
) | ||
.joinRaw( | ||
` | ||
LEFT JOIN | ||
(SELECT | ||
COLUMNPROPERTY(object_id(TABLE_NAME), COLUMN_NAME, 'IsIdentity') as EXTRA, | ||
TABLE_NAME, | ||
COLUMN_NAME, | ||
TABLE_CATALOG | ||
FROM | ||
INFORMATION_SCHEMA.COLUMNS | ||
WHERE | ||
COLUMNPROPERTY(object_id(TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1) AS ac | ||
ON [c].[TABLE_NAME] = [ac].[TABLE_NAME] | ||
AND [c].[TABLE_CATALOG] = [ac].[TABLE_CATALOG] | ||
AND [c].[COLUMN_NAME] = [ac].[COLUMN_NAME] | ||
` | ||
) | ||
.where({ | ||
@@ -205,3 +218,2 @@ 'c.TABLE_CATALOG': this.knex.client.database(), | ||
foreign_key_table: rawColumn.REFERENCED_TABLE_NAME, | ||
comment: rawColumn.COLUMN_COMMENT, | ||
} as Column; | ||
@@ -225,3 +237,2 @@ } | ||
foreign_key_table: rawColumn.REFERENCED_TABLE_NAME, | ||
comment: rawColumn.COLUMN_COMMENT, | ||
}; | ||
@@ -228,0 +239,0 @@ } |
{ | ||
"name": "knex-schema-inspector", | ||
"version": "0.0.16", | ||
"version": "0.0.17", | ||
"description": "[WIP] Utility for extracting information about existing DB schema", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
@@ -68,2 +68,4 @@ # knex-schema-inspector | ||
Note 3: MSSQL doesn't support comment for either tables or columns | ||
### Tables | ||
@@ -70,0 +72,0 @@ |
134137
3016
219