drizzle-seed 0.3.0 → 0.3.1-00df263
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/index.cjs +128 -103
- package/index.cjs.map +1 -1
- package/index.d.cts +8 -8
- package/index.d.mts +8 -8
- package/index.d.ts +8 -8
- package/index.mjs +123 -98
- package/index.mjs.map +1 -1
- package/package.json +1 -1
- package/services/SeedService.d.cts +4 -4
- package/services/SeedService.d.mts +4 -4
- package/services/SeedService.d.ts +4 -4
package/index.cjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var drizzleOrm = require('drizzle-orm');
|
|
4
|
+
var _relations = require('drizzle-orm/_relations');
|
|
4
5
|
var mysqlCore = require('drizzle-orm/mysql-core');
|
|
5
6
|
var pgCore = require('drizzle-orm/pg-core');
|
|
6
7
|
var sqliteCore = require('drizzle-orm/sqlite-core');
|
|
@@ -134483,7 +134484,7 @@ class SeedService {
|
|
|
134483
134484
|
orderedTablesNames.push(parent);
|
|
134484
134485
|
}
|
|
134485
134486
|
else {
|
|
134486
|
-
leafTablesNames.push(parent);
|
|
134487
|
+
leafTablesNames.push(...tablesInOutRelations[parent].requiredTableNames, parent);
|
|
134487
134488
|
continue;
|
|
134488
134489
|
}
|
|
134489
134490
|
children = [...tablesInOutRelations[parent].dependantTableNames];
|
|
@@ -135214,7 +135215,7 @@ class SeedService {
|
|
|
135214
135215
|
maxParametersNumber = this.mysqlMaxParametersNumber;
|
|
135215
135216
|
}
|
|
135216
135217
|
else {
|
|
135217
|
-
// is(db, BaseSQLiteDatabase<any, any>)
|
|
135218
|
+
// is(db, BaseSQLiteDatabase<any, any, any, any, any ,any>)
|
|
135218
135219
|
maxParametersNumber = this.sqliteMaxParametersNumber;
|
|
135219
135220
|
}
|
|
135220
135221
|
const maxBatchSize = Math.floor(maxParametersNumber / columnsNumber);
|
|
@@ -135539,7 +135540,7 @@ const resetPostgres = async (db, pgTables) => {
|
|
|
135539
135540
|
await db.execute(drizzleOrm.sql.raw(`truncate ${tablesToTruncate.join(',')} cascade;`));
|
|
135540
135541
|
};
|
|
135541
135542
|
const filterPgSchema = (schema) => {
|
|
135542
|
-
const pgSchema = Object.fromEntries(Object.entries(schema).filter((keyValue) => drizzleOrm.is(keyValue[1], pgCore.PgTable) || drizzleOrm.is(keyValue[1],
|
|
135543
|
+
const pgSchema = Object.fromEntries(Object.entries(schema).filter((keyValue) => drizzleOrm.is(keyValue[1], pgCore.PgTable) || drizzleOrm.is(keyValue[1], _relations.Relations)));
|
|
135543
135544
|
const pgTables = Object.fromEntries(Object.entries(schema).filter((keyValue) => drizzleOrm.is(keyValue[1], pgCore.PgTable)));
|
|
135544
135545
|
return { pgSchema, pgTables };
|
|
135545
135546
|
};
|
|
@@ -135577,42 +135578,50 @@ const getPostgresInfo = (pgSchema, pgTables) => {
|
|
|
135577
135578
|
return dbToTsColumnNamesMap;
|
|
135578
135579
|
};
|
|
135579
135580
|
const transformFromDrizzleRelation = (schema, getDbToTsColumnNamesMap, tableRelations) => {
|
|
135580
|
-
const schemaConfig =
|
|
135581
|
+
const schemaConfig = _relations.extractTablesRelationalConfig(schema, _relations.createTableRelationsHelpers);
|
|
135581
135582
|
const relations = [];
|
|
135582
135583
|
for (const table of Object.values(schemaConfig.tables)) {
|
|
135583
|
-
if (table.relations
|
|
135584
|
-
|
|
135585
|
-
|
|
135586
|
-
|
|
135587
|
-
|
|
135588
|
-
|
|
135589
|
-
|
|
135590
|
-
|
|
135591
|
-
|
|
135592
|
-
|
|
135593
|
-
|
|
135594
|
-
|
|
135595
|
-
|
|
135596
|
-
|
|
135597
|
-
|
|
135598
|
-
|
|
135599
|
-
|
|
135600
|
-
|
|
135601
|
-
|
|
135602
|
-
|
|
135603
|
-
|
|
135604
|
-
|
|
135605
|
-
|
|
135606
|
-
|
|
135607
|
-
|
|
135608
|
-
|
|
135609
|
-
|
|
135610
|
-
|
|
135611
|
-
|
|
135612
|
-
|
|
135613
|
-
|
|
135614
|
-
|
|
135584
|
+
if (table.relations === undefined)
|
|
135585
|
+
continue;
|
|
135586
|
+
for (const drizzleRel of Object.values(table.relations)) {
|
|
135587
|
+
if (!drizzleOrm.is(drizzleRel, _relations.One))
|
|
135588
|
+
continue;
|
|
135589
|
+
const tableConfig = pgCore.getTableConfig(drizzleRel.sourceTable);
|
|
135590
|
+
const tableDbSchema = tableConfig.schema ?? 'public';
|
|
135591
|
+
const tableDbName = tableConfig.name;
|
|
135592
|
+
const tableTsName = schemaConfig.tableNamesMap[`${tableDbSchema}.${tableDbName}`] ?? tableDbName;
|
|
135593
|
+
const dbToTsColumnNamesMap = getDbToTsColumnNamesMap(drizzleRel.sourceTable);
|
|
135594
|
+
const columns = drizzleRel.config?.fields.map((field) => dbToTsColumnNamesMap[field.name])
|
|
135595
|
+
?? [];
|
|
135596
|
+
const refTableConfig = pgCore.getTableConfig(drizzleRel.referencedTable);
|
|
135597
|
+
const refTableDbSchema = refTableConfig.schema ?? 'public';
|
|
135598
|
+
const refTableDbName = refTableConfig.name;
|
|
135599
|
+
const refTableTsName = schemaConfig.tableNamesMap[`${refTableDbSchema}.${refTableDbName}`]
|
|
135600
|
+
?? refTableDbName;
|
|
135601
|
+
const dbToTsColumnNamesMapForRefTable = getDbToTsColumnNamesMap(drizzleRel.referencedTable);
|
|
135602
|
+
const refColumns = drizzleRel.config?.references.map((ref) => dbToTsColumnNamesMapForRefTable[ref.name])
|
|
135603
|
+
?? [];
|
|
135604
|
+
if (tableRelations[refTableTsName] === undefined) {
|
|
135605
|
+
tableRelations[refTableTsName] = [];
|
|
135606
|
+
}
|
|
135607
|
+
const relation = {
|
|
135608
|
+
table: tableTsName,
|
|
135609
|
+
columns,
|
|
135610
|
+
refTable: refTableTsName,
|
|
135611
|
+
refColumns,
|
|
135612
|
+
refTableRels: tableRelations[refTableTsName],
|
|
135613
|
+
type: 'one',
|
|
135614
|
+
};
|
|
135615
|
+
// do not add duplicate relation
|
|
135616
|
+
if (tableRelations[tableTsName]?.some((rel) => rel.table === relation.table
|
|
135617
|
+
&& rel.refTable === relation.refTable)) {
|
|
135618
|
+
console.warn(`You are providing a one-to-many relation between the '${relation.refTable}' and '${relation.table}' tables,\n`
|
|
135619
|
+
+ `while the '${relation.table}' table object already has foreign key constraint in the schema referencing '${relation.refTable}' table.\n`
|
|
135620
|
+
+ `In this case, the foreign key constraint will be used.\n`);
|
|
135621
|
+
continue;
|
|
135615
135622
|
}
|
|
135623
|
+
relations.push(relation);
|
|
135624
|
+
tableRelations[tableTsName].push(relation);
|
|
135616
135625
|
}
|
|
135617
135626
|
}
|
|
135618
135627
|
return relations;
|
|
@@ -135781,7 +135790,7 @@ const resetMySql = async (db, schema) => {
|
|
|
135781
135790
|
await db.execute(drizzleOrm.sql.raw('SET FOREIGN_KEY_CHECKS = 1;'));
|
|
135782
135791
|
};
|
|
135783
135792
|
const filterMysqlTables = (schema) => {
|
|
135784
|
-
const mysqlSchema = Object.fromEntries(Object.entries(schema).filter((keyValue) => drizzleOrm.is(keyValue[1], mysqlCore.MySqlTable) || drizzleOrm.is(keyValue[1],
|
|
135793
|
+
const mysqlSchema = Object.fromEntries(Object.entries(schema).filter((keyValue) => drizzleOrm.is(keyValue[1], mysqlCore.MySqlTable) || drizzleOrm.is(keyValue[1], _relations.Relations)));
|
|
135785
135794
|
const mysqlTables = Object.fromEntries(Object.entries(schema).filter((keyValue) => drizzleOrm.is(keyValue[1], mysqlCore.MySqlTable)));
|
|
135786
135795
|
return { mysqlSchema, mysqlTables };
|
|
135787
135796
|
};
|
|
@@ -135819,42 +135828,50 @@ const getMySqlInfo = (mysqlSchema, mysqlTables) => {
|
|
|
135819
135828
|
return dbToTsColumnNamesMap;
|
|
135820
135829
|
};
|
|
135821
135830
|
const transformFromDrizzleRelation = (schema, getDbToTsColumnNamesMap, tableRelations) => {
|
|
135822
|
-
const schemaConfig =
|
|
135831
|
+
const schemaConfig = _relations.extractTablesRelationalConfig(schema, _relations.createTableRelationsHelpers);
|
|
135823
135832
|
const relations = [];
|
|
135824
135833
|
for (const table of Object.values(schemaConfig.tables)) {
|
|
135825
|
-
if (table.relations
|
|
135826
|
-
|
|
135827
|
-
|
|
135828
|
-
|
|
135829
|
-
|
|
135830
|
-
|
|
135831
|
-
|
|
135832
|
-
|
|
135833
|
-
|
|
135834
|
-
|
|
135835
|
-
|
|
135836
|
-
|
|
135837
|
-
|
|
135838
|
-
|
|
135839
|
-
|
|
135840
|
-
|
|
135841
|
-
|
|
135842
|
-
|
|
135843
|
-
|
|
135844
|
-
|
|
135845
|
-
|
|
135846
|
-
|
|
135847
|
-
|
|
135848
|
-
|
|
135849
|
-
|
|
135850
|
-
|
|
135851
|
-
|
|
135852
|
-
|
|
135853
|
-
|
|
135854
|
-
|
|
135855
|
-
|
|
135856
|
-
|
|
135834
|
+
if (table.relations === undefined)
|
|
135835
|
+
continue;
|
|
135836
|
+
for (const drizzleRel of Object.values(table.relations)) {
|
|
135837
|
+
if (!drizzleOrm.is(drizzleRel, _relations.One))
|
|
135838
|
+
continue;
|
|
135839
|
+
const tableConfig = mysqlCore.getTableConfig(drizzleRel.sourceTable);
|
|
135840
|
+
const tableDbSchema = tableConfig.schema ?? 'public';
|
|
135841
|
+
const tableDbName = tableConfig.name;
|
|
135842
|
+
const tableTsName = schemaConfig.tableNamesMap[`${tableDbSchema}.${tableDbName}`] ?? tableDbName;
|
|
135843
|
+
const dbToTsColumnNamesMap = getDbToTsColumnNamesMap(drizzleRel.sourceTable);
|
|
135844
|
+
const columns = drizzleRel.config?.fields.map((field) => dbToTsColumnNamesMap[field.name])
|
|
135845
|
+
?? [];
|
|
135846
|
+
const refTableConfig = mysqlCore.getTableConfig(drizzleRel.referencedTable);
|
|
135847
|
+
const refTableDbSchema = refTableConfig.schema ?? 'public';
|
|
135848
|
+
const refTableDbName = refTableConfig.name;
|
|
135849
|
+
const refTableTsName = schemaConfig.tableNamesMap[`${refTableDbSchema}.${refTableDbName}`]
|
|
135850
|
+
?? refTableDbName;
|
|
135851
|
+
const dbToTsColumnNamesMapForRefTable = getDbToTsColumnNamesMap(drizzleRel.referencedTable);
|
|
135852
|
+
const refColumns = drizzleRel.config?.references.map((ref) => dbToTsColumnNamesMapForRefTable[ref.name])
|
|
135853
|
+
?? [];
|
|
135854
|
+
if (tableRelations[refTableTsName] === undefined) {
|
|
135855
|
+
tableRelations[refTableTsName] = [];
|
|
135856
|
+
}
|
|
135857
|
+
const relation = {
|
|
135858
|
+
table: tableTsName,
|
|
135859
|
+
columns,
|
|
135860
|
+
refTable: refTableTsName,
|
|
135861
|
+
refColumns,
|
|
135862
|
+
refTableRels: tableRelations[refTableTsName],
|
|
135863
|
+
type: 'one',
|
|
135864
|
+
};
|
|
135865
|
+
// do not add duplicate relation
|
|
135866
|
+
if (tableRelations[tableTsName]?.some((rel) => rel.table === relation.table
|
|
135867
|
+
&& rel.refTable === relation.refTable)) {
|
|
135868
|
+
console.warn(`You are providing a one-to-many relation between the '${relation.refTable}' and '${relation.table}' tables,\n`
|
|
135869
|
+
+ `while the '${relation.table}' table object already has foreign key constraint in the schema referencing '${relation.refTable}' table.\n`
|
|
135870
|
+
+ `In this case, the foreign key constraint will be used.\n`);
|
|
135871
|
+
continue;
|
|
135857
135872
|
}
|
|
135873
|
+
relations.push(relation);
|
|
135874
|
+
tableRelations[tableTsName].push(relation);
|
|
135858
135875
|
}
|
|
135859
135876
|
}
|
|
135860
135877
|
return relations;
|
|
@@ -135959,7 +135976,7 @@ const resetSqlite = async (db, schema) => {
|
|
|
135959
135976
|
await db.run(drizzleOrm.sql.raw('PRAGMA foreign_keys = ON'));
|
|
135960
135977
|
};
|
|
135961
135978
|
const filterSqliteTables = (schema) => {
|
|
135962
|
-
const sqliteSchema = Object.fromEntries(Object.entries(schema).filter((keyValue) => drizzleOrm.is(keyValue[1], sqliteCore.SQLiteTable) || drizzleOrm.is(keyValue[1],
|
|
135979
|
+
const sqliteSchema = Object.fromEntries(Object.entries(schema).filter((keyValue) => drizzleOrm.is(keyValue[1], sqliteCore.SQLiteTable) || drizzleOrm.is(keyValue[1], _relations.Relations)));
|
|
135963
135980
|
const sqliteTables = Object.fromEntries(Object.entries(schema).filter((keyValue) => drizzleOrm.is(keyValue[1], sqliteCore.SQLiteTable)));
|
|
135964
135981
|
return { sqliteSchema, sqliteTables };
|
|
135965
135982
|
};
|
|
@@ -135997,41 +136014,49 @@ const getSqliteInfo = (sqliteSchema, sqliteTables) => {
|
|
|
135997
136014
|
return dbToTsColumnNamesMap;
|
|
135998
136015
|
};
|
|
135999
136016
|
const transformFromDrizzleRelation = (schema, getDbToTsColumnNamesMap, tableRelations) => {
|
|
136000
|
-
const schemaConfig =
|
|
136017
|
+
const schemaConfig = _relations.extractTablesRelationalConfig(schema, _relations.createTableRelationsHelpers);
|
|
136001
136018
|
const relations = [];
|
|
136002
136019
|
for (const table of Object.values(schemaConfig.tables)) {
|
|
136003
|
-
if (table.relations
|
|
136004
|
-
|
|
136005
|
-
|
|
136006
|
-
|
|
136007
|
-
|
|
136008
|
-
|
|
136009
|
-
|
|
136010
|
-
|
|
136011
|
-
|
|
136012
|
-
|
|
136013
|
-
|
|
136014
|
-
|
|
136015
|
-
|
|
136016
|
-
|
|
136017
|
-
|
|
136018
|
-
|
|
136019
|
-
|
|
136020
|
-
|
|
136021
|
-
|
|
136022
|
-
|
|
136023
|
-
|
|
136024
|
-
|
|
136025
|
-
|
|
136026
|
-
|
|
136027
|
-
|
|
136028
|
-
|
|
136029
|
-
|
|
136030
|
-
|
|
136031
|
-
|
|
136032
|
-
|
|
136033
|
-
|
|
136020
|
+
if (table.relations === undefined)
|
|
136021
|
+
continue;
|
|
136022
|
+
for (const drizzleRel of Object.values(table.relations)) {
|
|
136023
|
+
if (!drizzleOrm.is(drizzleRel, _relations.One))
|
|
136024
|
+
continue;
|
|
136025
|
+
const tableConfig = sqliteCore.getTableConfig(drizzleRel.sourceTable);
|
|
136026
|
+
const tableDbName = tableConfig.name;
|
|
136027
|
+
// TODO: tableNamesMap: have {public.customer: 'customer'} structure in sqlite
|
|
136028
|
+
const tableTsName = schemaConfig.tableNamesMap[`public.${tableDbName}`] ?? tableDbName;
|
|
136029
|
+
const dbToTsColumnNamesMap = getDbToTsColumnNamesMap(drizzleRel.sourceTable);
|
|
136030
|
+
const columns = drizzleRel.config?.fields.map((field) => dbToTsColumnNamesMap[field.name])
|
|
136031
|
+
?? [];
|
|
136032
|
+
const refTableConfig = sqliteCore.getTableConfig(drizzleRel.referencedTable);
|
|
136033
|
+
const refTableDbName = refTableConfig.name;
|
|
136034
|
+
const refTableTsName = schemaConfig.tableNamesMap[`public.${refTableDbName}`]
|
|
136035
|
+
?? refTableDbName;
|
|
136036
|
+
const dbToTsColumnNamesMapForRefTable = getDbToTsColumnNamesMap(drizzleRel.referencedTable);
|
|
136037
|
+
const refColumns = drizzleRel.config?.references.map((ref) => dbToTsColumnNamesMapForRefTable[ref.name])
|
|
136038
|
+
?? [];
|
|
136039
|
+
if (tableRelations[refTableTsName] === undefined) {
|
|
136040
|
+
tableRelations[refTableTsName] = [];
|
|
136041
|
+
}
|
|
136042
|
+
const relation = {
|
|
136043
|
+
table: tableTsName,
|
|
136044
|
+
columns,
|
|
136045
|
+
refTable: refTableTsName,
|
|
136046
|
+
refColumns,
|
|
136047
|
+
refTableRels: tableRelations[refTableTsName],
|
|
136048
|
+
type: 'one',
|
|
136049
|
+
};
|
|
136050
|
+
// do not add duplicate relation
|
|
136051
|
+
if (tableRelations[tableTsName]?.some((rel) => rel.table === relation.table
|
|
136052
|
+
&& rel.refTable === relation.refTable)) {
|
|
136053
|
+
console.warn(`You are providing a one-to-many relation between the '${relation.refTable}' and '${relation.table}' tables,\n`
|
|
136054
|
+
+ `while the '${relation.table}' table object already has foreign key constraint in the schema referencing '${relation.refTable}' table.\n`
|
|
136055
|
+
+ `In this case, the foreign key constraint will be used.\n`);
|
|
136056
|
+
continue;
|
|
136034
136057
|
}
|
|
136058
|
+
relations.push(relation);
|
|
136059
|
+
tableRelations[tableTsName].push(relation);
|
|
136035
136060
|
}
|
|
136036
136061
|
}
|
|
136037
136062
|
return relations;
|