Socket
Socket
Sign inDemoInstall

knex-schema-inspector

Package Overview
Dependencies
Maintainers
1
Versions
70
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

knex-schema-inspector - npm Package Compare versions

Comparing version 1.6.2 to 1.6.3

12

dist/dialects/mysql.js

@@ -224,13 +224,3 @@ "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('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');
})
.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 "))
.where({

@@ -237,0 +227,0 @@ 'c.TABLE_SCHEMA': this.knex.client.database(),

34

lib/dialects/mysql.ts

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

)
.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');
}
.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
`)
)

@@ -235,0 +243,0 @@ .where({

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

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

@@ -122,3 +122,5 @@ import knex, { Knex } from 'knex';

it('returns information for all columns in all tables', async () => {
expect(await inspector.columnInfo()).to.deep.include.members([
const columnInfo = await inspector.columnInfo();
expect(columnInfo).to.have.length(16);
expect(columnInfo).to.deep.include.members([
{

@@ -135,3 +137,3 @@ name: 'team_id',

is_nullable: false,
is_unique: false,
is_unique: true,
is_primary_key: false,

@@ -138,0 +140,0 @@ has_auto_increment: false,

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc