bun-query-builder 0.2.17 → 0.2.18
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/dist/bin/cli.js +65 -3
- package/dist/src/index.js +64 -2
- package/package.json +1 -1
package/dist/bin/cli.js
CHANGED
|
@@ -18210,7 +18210,42 @@ class MySQLDriver {
|
|
|
18210
18210
|
sql += ` ON DELETE ${onDelete.toUpperCase()}`;
|
|
18211
18211
|
if (onUpdate)
|
|
18212
18212
|
sql += ` ON UPDATE ${onUpdate.toUpperCase()}`;
|
|
18213
|
-
return `${
|
|
18213
|
+
return `${this.dropForeignKeysOn(tableName, columnName)}
|
|
18214
|
+
${sql};`;
|
|
18215
|
+
}
|
|
18216
|
+
dropForeignKeysOn(tableName, columnName) {
|
|
18217
|
+
const table = this.quoteLiteral(tableName);
|
|
18218
|
+
const column = this.quoteLiteral(columnName);
|
|
18219
|
+
return `SET @drop_fks := (
|
|
18220
|
+
SELECT CONCAT(
|
|
18221
|
+
'ALTER TABLE \`', ${table}, '\` DROP FOREIGN KEY \`',
|
|
18222
|
+
GROUP_CONCAT(kcu.CONSTRAINT_NAME SEPARATOR '\`, DROP FOREIGN KEY \`'),
|
|
18223
|
+
'\`'
|
|
18224
|
+
)
|
|
18225
|
+
FROM information_schema.KEY_COLUMN_USAGE kcu
|
|
18226
|
+
WHERE kcu.TABLE_SCHEMA = DATABASE()
|
|
18227
|
+
AND kcu.TABLE_NAME = ${table}
|
|
18228
|
+
AND kcu.COLUMN_NAME = ${column}
|
|
18229
|
+
AND kcu.REFERENCED_TABLE_NAME IS NOT NULL
|
|
18230
|
+
AND kcu.CONSTRAINT_NAME IN (
|
|
18231
|
+
SELECT single.CONSTRAINT_NAME FROM (
|
|
18232
|
+
SELECT inner_kcu.CONSTRAINT_NAME
|
|
18233
|
+
FROM information_schema.KEY_COLUMN_USAGE inner_kcu
|
|
18234
|
+
WHERE inner_kcu.TABLE_SCHEMA = DATABASE()
|
|
18235
|
+
AND inner_kcu.TABLE_NAME = ${table}
|
|
18236
|
+
AND inner_kcu.REFERENCED_TABLE_NAME IS NOT NULL
|
|
18237
|
+
GROUP BY inner_kcu.CONSTRAINT_NAME
|
|
18238
|
+
HAVING COUNT(*) = 1
|
|
18239
|
+
) AS single
|
|
18240
|
+
)
|
|
18241
|
+
);
|
|
18242
|
+
SET @drop_fks := IFNULL(@drop_fks, 'SELECT 1');
|
|
18243
|
+
PREPARE drop_fks_stmt FROM @drop_fks;
|
|
18244
|
+
EXECUTE drop_fks_stmt;
|
|
18245
|
+
DEALLOCATE PREPARE drop_fks_stmt;`;
|
|
18246
|
+
}
|
|
18247
|
+
quoteLiteral(value) {
|
|
18248
|
+
return `'${value.replace(/'/g, "''")}'`;
|
|
18214
18249
|
}
|
|
18215
18250
|
addColumn(tableName, column) {
|
|
18216
18251
|
const typeSql = this.getColumnType(column);
|
|
@@ -18400,7 +18435,34 @@ class PostgresDriver {
|
|
|
18400
18435
|
sql += ` ON DELETE ${onDelete.toUpperCase()}`;
|
|
18401
18436
|
if (onUpdate)
|
|
18402
18437
|
sql += ` ON UPDATE ${onUpdate.toUpperCase()}`;
|
|
18403
|
-
return `${
|
|
18438
|
+
return `${this.dropForeignKeysOn(tableName, columnName)}
|
|
18439
|
+
${sql};`;
|
|
18440
|
+
}
|
|
18441
|
+
dropForeignKeysOn(tableName, columnName) {
|
|
18442
|
+
const table = this.quoteLiteral(tableName);
|
|
18443
|
+
const column = this.quoteLiteral(columnName);
|
|
18444
|
+
return `DO $$
|
|
18445
|
+
DECLARE existing_name text;
|
|
18446
|
+
BEGIN
|
|
18447
|
+
FOR existing_name IN
|
|
18448
|
+
SELECT con.conname
|
|
18449
|
+
FROM pg_constraint con
|
|
18450
|
+
JOIN pg_class rel ON rel.oid = con.conrelid
|
|
18451
|
+
JOIN pg_namespace nsp ON nsp.oid = rel.relnamespace
|
|
18452
|
+
WHERE con.contype = 'f'
|
|
18453
|
+
AND rel.relname = ${table}
|
|
18454
|
+
AND nsp.nspname = current_schema()
|
|
18455
|
+
AND con.conkey = ARRAY[(
|
|
18456
|
+
SELECT att.attnum FROM pg_attribute att
|
|
18457
|
+
WHERE att.attrelid = rel.oid AND att.attname = ${column} AND att.attnum > 0
|
|
18458
|
+
)]::smallint[]
|
|
18459
|
+
LOOP
|
|
18460
|
+
EXECUTE format('ALTER TABLE %I DROP CONSTRAINT %I', ${table}, existing_name);
|
|
18461
|
+
END LOOP;
|
|
18462
|
+
END $$;`;
|
|
18463
|
+
}
|
|
18464
|
+
quoteLiteral(value) {
|
|
18465
|
+
return `'${value.replace(/'/g, "''")}'`;
|
|
18404
18466
|
}
|
|
18405
18467
|
addColumn(tableName, column) {
|
|
18406
18468
|
const typeSql = this.getColumnType(column);
|
|
@@ -31565,7 +31627,7 @@ function getPrefix() {
|
|
|
31565
31627
|
}
|
|
31566
31628
|
var prefix = getPrefix();
|
|
31567
31629
|
// package.json
|
|
31568
|
-
var version2 = "0.2.
|
|
31630
|
+
var version2 = "0.2.18";
|
|
31569
31631
|
|
|
31570
31632
|
// bin/cli.ts
|
|
31571
31633
|
init_actions();
|
package/dist/src/index.js
CHANGED
|
@@ -18209,7 +18209,42 @@ class MySQLDriver {
|
|
|
18209
18209
|
sql += ` ON DELETE ${onDelete.toUpperCase()}`;
|
|
18210
18210
|
if (onUpdate)
|
|
18211
18211
|
sql += ` ON UPDATE ${onUpdate.toUpperCase()}`;
|
|
18212
|
-
return `${
|
|
18212
|
+
return `${this.dropForeignKeysOn(tableName, columnName)}
|
|
18213
|
+
${sql};`;
|
|
18214
|
+
}
|
|
18215
|
+
dropForeignKeysOn(tableName, columnName) {
|
|
18216
|
+
const table = this.quoteLiteral(tableName);
|
|
18217
|
+
const column = this.quoteLiteral(columnName);
|
|
18218
|
+
return `SET @drop_fks := (
|
|
18219
|
+
SELECT CONCAT(
|
|
18220
|
+
'ALTER TABLE \`', ${table}, '\` DROP FOREIGN KEY \`',
|
|
18221
|
+
GROUP_CONCAT(kcu.CONSTRAINT_NAME SEPARATOR '\`, DROP FOREIGN KEY \`'),
|
|
18222
|
+
'\`'
|
|
18223
|
+
)
|
|
18224
|
+
FROM information_schema.KEY_COLUMN_USAGE kcu
|
|
18225
|
+
WHERE kcu.TABLE_SCHEMA = DATABASE()
|
|
18226
|
+
AND kcu.TABLE_NAME = ${table}
|
|
18227
|
+
AND kcu.COLUMN_NAME = ${column}
|
|
18228
|
+
AND kcu.REFERENCED_TABLE_NAME IS NOT NULL
|
|
18229
|
+
AND kcu.CONSTRAINT_NAME IN (
|
|
18230
|
+
SELECT single.CONSTRAINT_NAME FROM (
|
|
18231
|
+
SELECT inner_kcu.CONSTRAINT_NAME
|
|
18232
|
+
FROM information_schema.KEY_COLUMN_USAGE inner_kcu
|
|
18233
|
+
WHERE inner_kcu.TABLE_SCHEMA = DATABASE()
|
|
18234
|
+
AND inner_kcu.TABLE_NAME = ${table}
|
|
18235
|
+
AND inner_kcu.REFERENCED_TABLE_NAME IS NOT NULL
|
|
18236
|
+
GROUP BY inner_kcu.CONSTRAINT_NAME
|
|
18237
|
+
HAVING COUNT(*) = 1
|
|
18238
|
+
) AS single
|
|
18239
|
+
)
|
|
18240
|
+
);
|
|
18241
|
+
SET @drop_fks := IFNULL(@drop_fks, 'SELECT 1');
|
|
18242
|
+
PREPARE drop_fks_stmt FROM @drop_fks;
|
|
18243
|
+
EXECUTE drop_fks_stmt;
|
|
18244
|
+
DEALLOCATE PREPARE drop_fks_stmt;`;
|
|
18245
|
+
}
|
|
18246
|
+
quoteLiteral(value) {
|
|
18247
|
+
return `'${value.replace(/'/g, "''")}'`;
|
|
18213
18248
|
}
|
|
18214
18249
|
addColumn(tableName, column) {
|
|
18215
18250
|
const typeSql = this.getColumnType(column);
|
|
@@ -18399,7 +18434,34 @@ class PostgresDriver {
|
|
|
18399
18434
|
sql += ` ON DELETE ${onDelete.toUpperCase()}`;
|
|
18400
18435
|
if (onUpdate)
|
|
18401
18436
|
sql += ` ON UPDATE ${onUpdate.toUpperCase()}`;
|
|
18402
|
-
return `${
|
|
18437
|
+
return `${this.dropForeignKeysOn(tableName, columnName)}
|
|
18438
|
+
${sql};`;
|
|
18439
|
+
}
|
|
18440
|
+
dropForeignKeysOn(tableName, columnName) {
|
|
18441
|
+
const table = this.quoteLiteral(tableName);
|
|
18442
|
+
const column = this.quoteLiteral(columnName);
|
|
18443
|
+
return `DO $$
|
|
18444
|
+
DECLARE existing_name text;
|
|
18445
|
+
BEGIN
|
|
18446
|
+
FOR existing_name IN
|
|
18447
|
+
SELECT con.conname
|
|
18448
|
+
FROM pg_constraint con
|
|
18449
|
+
JOIN pg_class rel ON rel.oid = con.conrelid
|
|
18450
|
+
JOIN pg_namespace nsp ON nsp.oid = rel.relnamespace
|
|
18451
|
+
WHERE con.contype = 'f'
|
|
18452
|
+
AND rel.relname = ${table}
|
|
18453
|
+
AND nsp.nspname = current_schema()
|
|
18454
|
+
AND con.conkey = ARRAY[(
|
|
18455
|
+
SELECT att.attnum FROM pg_attribute att
|
|
18456
|
+
WHERE att.attrelid = rel.oid AND att.attname = ${column} AND att.attnum > 0
|
|
18457
|
+
)]::smallint[]
|
|
18458
|
+
LOOP
|
|
18459
|
+
EXECUTE format('ALTER TABLE %I DROP CONSTRAINT %I', ${table}, existing_name);
|
|
18460
|
+
END LOOP;
|
|
18461
|
+
END $$;`;
|
|
18462
|
+
}
|
|
18463
|
+
quoteLiteral(value) {
|
|
18464
|
+
return `'${value.replace(/'/g, "''")}'`;
|
|
18403
18465
|
}
|
|
18404
18466
|
addColumn(tableName, column) {
|
|
18405
18467
|
const typeSql = this.getColumnType(column);
|
package/package.json
CHANGED