Socket
Socket
Sign inDemoInstall

knex-schema-inspector

Package Overview
Dependencies
2
Maintainers
1
Versions
70
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.6.3 to 1.6.4

22

dist/dialects/mysql.js

@@ -224,3 +224,13 @@ "use strict";

.select('c.TABLE_NAME', 'c.COLUMN_NAME', 'c.COLUMN_DEFAULT', 'c.COLUMN_TYPE', 'c.CHARACTER_MAXIMUM_LENGTH', 'c.IS_NULLABLE', 'c.COLUMN_KEY', 'c.EXTRA', 'c.COLLATION_NAME', 'c.COLUMN_COMMENT', 'c.NUMERIC_PRECISION', 'c.NUMERIC_SCALE', 'c.GENERATION_EXPRESSION', 'fk.REFERENCED_TABLE_NAME', 'fk.REFERENCED_COLUMN_NAME', 'fk.CONSTRAINT_NAME', 'rc.UPDATE_RULE', 'rc.DELETE_RULE', 'rc.MATCH_OPTION')
.from(this.knex.raw("\n INFORMATION_SCHEMA.COLUMNS AS c\n LEFT JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS fk\n ON c.TABLE_NAME = fk.TABLE_NAME\n AND c.COLUMN_NAME = fk.COLUMN_NAME\n AND c.TABLE_SCHEMA = fk.CONSTRAINT_SCHEMA\n AND fk.CONSTRAINT_NAME = (\n SELECT _fk.CONSTRAINT_NAME\n FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS _fk\n WHERE fk.TABLE_NAME = _fk.TABLE_NAME\n AND fk.COLUMN_NAME = _fk.COLUMN_NAME\n AND fk.CONSTRAINT_SCHEMA = _fk.CONSTRAINT_SCHEMA\n ORDER BY REFERENCED_TABLE_NAME IS NULL\n LIMIT 1\n )\n LEFT JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS as rc\n ON rc.TABLE_NAME = fk.TABLE_NAME\n AND rc.CONSTRAINT_NAME = fk.CONSTRAINT_NAME\n AND rc.CONSTRAINT_SCHEMA = fk.CONSTRAINT_SCHEMA\n "))
.from('INFORMATION_SCHEMA.COLUMNS as c')
.leftJoin('INFORMATION_SCHEMA.KEY_COLUMN_USAGE as fk', function () {
this.on('c.TABLE_NAME', '=', 'fk.TABLE_NAME')
.andOn('fk.COLUMN_NAME', '=', 'c.COLUMN_NAME')
.andOn('fk.CONSTRAINT_SCHEMA', '=', 'c.TABLE_SCHEMA');
})
.leftJoin('INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS as rc', function () {
this.on('rc.TABLE_NAME', '=', 'fk.TABLE_NAME')
.andOn('rc.CONSTRAINT_NAME', '=', 'fk.CONSTRAINT_NAME')
.andOn('rc.CONSTRAINT_SCHEMA', '=', 'fk.CONSTRAINT_SCHEMA');
})
.where({

@@ -242,3 +252,11 @@ 'c.TABLE_SCHEMA': this.knex.client.database(),

records = _a.sent();
return [2 /*return*/, records.map(rawColumnToColumn)];
return [2 /*return*/, records
.map(rawColumnToColumn)
.sort(function (column) { return +!column.foreign_key_column; })
.filter(function (column, index, records) {
var first = records.findIndex(function (_column) {
return column.name === _column.name && column.table === _column.table;
});
return first === index;
})];
}

@@ -245,0 +263,0 @@ });

44

lib/dialects/mysql.ts

@@ -220,23 +220,15 @@ import { Knex } from 'knex';

)
.from(
this.knex.raw(`
INFORMATION_SCHEMA.COLUMNS AS c
LEFT JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS fk
ON c.TABLE_NAME = fk.TABLE_NAME
AND c.COLUMN_NAME = fk.COLUMN_NAME
AND c.TABLE_SCHEMA = fk.CONSTRAINT_SCHEMA
AND fk.CONSTRAINT_NAME = (
SELECT _fk.CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS _fk
WHERE fk.TABLE_NAME = _fk.TABLE_NAME
AND fk.COLUMN_NAME = _fk.COLUMN_NAME
AND fk.CONSTRAINT_SCHEMA = _fk.CONSTRAINT_SCHEMA
ORDER BY REFERENCED_TABLE_NAME IS NULL
LIMIT 1
)
LEFT JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS as rc
ON rc.TABLE_NAME = fk.TABLE_NAME
AND rc.CONSTRAINT_NAME = fk.CONSTRAINT_NAME
AND rc.CONSTRAINT_SCHEMA = fk.CONSTRAINT_SCHEMA
`)
.from('INFORMATION_SCHEMA.COLUMNS as c')
.leftJoin('INFORMATION_SCHEMA.KEY_COLUMN_USAGE as fk', function () {
this.on('c.TABLE_NAME', '=', 'fk.TABLE_NAME')
.andOn('fk.COLUMN_NAME', '=', 'c.COLUMN_NAME')
.andOn('fk.CONSTRAINT_SCHEMA', '=', 'c.TABLE_SCHEMA');
})
.leftJoin(
'INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS as rc',
function () {
this.on('rc.TABLE_NAME', '=', 'fk.TABLE_NAME')
.andOn('rc.CONSTRAINT_NAME', '=', 'fk.CONSTRAINT_NAME')
.andOn('rc.CONSTRAINT_SCHEMA', '=', 'fk.CONSTRAINT_SCHEMA');
}
)

@@ -261,3 +253,11 @@ .where({

return records.map(rawColumnToColumn);
return records
.map(rawColumnToColumn)
.sort((column) => +!column.foreign_key_column)
.filter((column, index, records) => {
const first = records.findIndex((_column) => {
return column.name === _column.name && column.table === _column.table;
});
return first === index;
});
}

@@ -264,0 +264,0 @@

{
"name": "knex-schema-inspector",
"version": "1.6.3",
"version": "1.6.4",
"description": "Utility for extracting information about existing DB schema",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc