drizzle-seed 0.3.0 → 0.3.1-014cdb8

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 CHANGED
@@ -134483,7 +134483,7 @@ class SeedService {
134483
134483
  orderedTablesNames.push(parent);
134484
134484
  }
134485
134485
  else {
134486
- leafTablesNames.push(parent);
134486
+ leafTablesNames.push(...tablesInOutRelations[parent].requiredTableNames, parent);
134487
134487
  continue;
134488
134488
  }
134489
134489
  children = [...tablesInOutRelations[parent].dependantTableNames];
@@ -135580,39 +135580,47 @@ const getPostgresInfo = (pgSchema, pgTables) => {
135580
135580
  const schemaConfig = drizzleOrm.extractTablesRelationalConfig(schema, drizzleOrm.createTableRelationsHelpers);
135581
135581
  const relations = [];
135582
135582
  for (const table of Object.values(schemaConfig.tables)) {
135583
- if (table.relations !== undefined) {
135584
- for (const drizzleRel of Object.values(table.relations)) {
135585
- if (drizzleOrm.is(drizzleRel, drizzleOrm.One)) {
135586
- const tableConfig = pgCore.getTableConfig(drizzleRel.sourceTable);
135587
- const tableDbSchema = tableConfig.schema ?? 'public';
135588
- const tableDbName = tableConfig.name;
135589
- const tableTsName = schemaConfig.tableNamesMap[`${tableDbSchema}.${tableDbName}`] ?? tableDbName;
135590
- const dbToTsColumnNamesMap = getDbToTsColumnNamesMap(drizzleRel.sourceTable);
135591
- const columns = drizzleRel.config?.fields.map((field) => dbToTsColumnNamesMap[field.name])
135592
- ?? [];
135593
- const refTableConfig = pgCore.getTableConfig(drizzleRel.referencedTable);
135594
- const refTableDbSchema = refTableConfig.schema ?? 'public';
135595
- const refTableDbName = refTableConfig.name;
135596
- const refTableTsName = schemaConfig.tableNamesMap[`${refTableDbSchema}.${refTableDbName}`]
135597
- ?? refTableDbName;
135598
- const dbToTsColumnNamesMapForRefTable = getDbToTsColumnNamesMap(drizzleRel.referencedTable);
135599
- const refColumns = drizzleRel.config?.references.map((ref) => dbToTsColumnNamesMapForRefTable[ref.name])
135600
- ?? [];
135601
- if (tableRelations[refTableTsName] === undefined) {
135602
- tableRelations[refTableTsName] = [];
135603
- }
135604
- const relation = {
135605
- table: tableTsName,
135606
- columns,
135607
- refTable: refTableTsName,
135608
- refColumns,
135609
- refTableRels: tableRelations[refTableTsName],
135610
- type: 'one',
135611
- };
135612
- relations.push(relation);
135613
- tableRelations[tableTsName].push(relation);
135614
- }
135583
+ if (table.relations === undefined)
135584
+ continue;
135585
+ for (const drizzleRel of Object.values(table.relations)) {
135586
+ if (!drizzleOrm.is(drizzleRel, drizzleOrm.One))
135587
+ continue;
135588
+ const tableConfig = pgCore.getTableConfig(drizzleRel.sourceTable);
135589
+ const tableDbSchema = tableConfig.schema ?? 'public';
135590
+ const tableDbName = tableConfig.name;
135591
+ const tableTsName = schemaConfig.tableNamesMap[`${tableDbSchema}.${tableDbName}`] ?? tableDbName;
135592
+ const dbToTsColumnNamesMap = getDbToTsColumnNamesMap(drizzleRel.sourceTable);
135593
+ const columns = drizzleRel.config?.fields.map((field) => dbToTsColumnNamesMap[field.name])
135594
+ ?? [];
135595
+ const refTableConfig = pgCore.getTableConfig(drizzleRel.referencedTable);
135596
+ const refTableDbSchema = refTableConfig.schema ?? 'public';
135597
+ const refTableDbName = refTableConfig.name;
135598
+ const refTableTsName = schemaConfig.tableNamesMap[`${refTableDbSchema}.${refTableDbName}`]
135599
+ ?? refTableDbName;
135600
+ const dbToTsColumnNamesMapForRefTable = getDbToTsColumnNamesMap(drizzleRel.referencedTable);
135601
+ const refColumns = drizzleRel.config?.references.map((ref) => dbToTsColumnNamesMapForRefTable[ref.name])
135602
+ ?? [];
135603
+ if (tableRelations[refTableTsName] === undefined) {
135604
+ tableRelations[refTableTsName] = [];
135605
+ }
135606
+ const relation = {
135607
+ table: tableTsName,
135608
+ columns,
135609
+ refTable: refTableTsName,
135610
+ refColumns,
135611
+ refTableRels: tableRelations[refTableTsName],
135612
+ type: 'one',
135613
+ };
135614
+ // do not add duplicate relation
135615
+ if (tableRelations[tableTsName]?.some((rel) => rel.table === relation.table
135616
+ && rel.refTable === relation.refTable)) {
135617
+ console.warn(`You are providing a one-to-many relation between the '${relation.refTable}' and '${relation.table}' tables,\n`
135618
+ + `while the '${relation.table}' table object already has foreign key constraint in the schema referencing '${relation.refTable}' table.\n`
135619
+ + `In this case, the foreign key constraint will be used.\n`);
135620
+ continue;
135615
135621
  }
135622
+ relations.push(relation);
135623
+ tableRelations[tableTsName].push(relation);
135616
135624
  }
135617
135625
  }
135618
135626
  return relations;
@@ -135822,39 +135830,47 @@ const getMySqlInfo = (mysqlSchema, mysqlTables) => {
135822
135830
  const schemaConfig = drizzleOrm.extractTablesRelationalConfig(schema, drizzleOrm.createTableRelationsHelpers);
135823
135831
  const relations = [];
135824
135832
  for (const table of Object.values(schemaConfig.tables)) {
135825
- if (table.relations !== undefined) {
135826
- for (const drizzleRel of Object.values(table.relations)) {
135827
- if (drizzleOrm.is(drizzleRel, drizzleOrm.One)) {
135828
- const tableConfig = mysqlCore.getTableConfig(drizzleRel.sourceTable);
135829
- const tableDbSchema = tableConfig.schema ?? 'public';
135830
- const tableDbName = tableConfig.name;
135831
- const tableTsName = schemaConfig.tableNamesMap[`${tableDbSchema}.${tableDbName}`] ?? tableDbName;
135832
- const dbToTsColumnNamesMap = getDbToTsColumnNamesMap(drizzleRel.sourceTable);
135833
- const columns = drizzleRel.config?.fields.map((field) => dbToTsColumnNamesMap[field.name])
135834
- ?? [];
135835
- const refTableConfig = mysqlCore.getTableConfig(drizzleRel.referencedTable);
135836
- const refTableDbSchema = refTableConfig.schema ?? 'public';
135837
- const refTableDbName = refTableConfig.name;
135838
- const refTableTsName = schemaConfig.tableNamesMap[`${refTableDbSchema}.${refTableDbName}`]
135839
- ?? refTableDbName;
135840
- const dbToTsColumnNamesMapForRefTable = getDbToTsColumnNamesMap(drizzleRel.referencedTable);
135841
- const refColumns = drizzleRel.config?.references.map((ref) => dbToTsColumnNamesMapForRefTable[ref.name])
135842
- ?? [];
135843
- if (tableRelations[refTableTsName] === undefined) {
135844
- tableRelations[refTableTsName] = [];
135845
- }
135846
- const relation = {
135847
- table: tableTsName,
135848
- columns,
135849
- refTable: refTableTsName,
135850
- refColumns,
135851
- refTableRels: tableRelations[refTableTsName],
135852
- type: 'one',
135853
- };
135854
- relations.push(relation);
135855
- tableRelations[tableTsName].push(relation);
135856
- }
135833
+ if (table.relations === undefined)
135834
+ continue;
135835
+ for (const drizzleRel of Object.values(table.relations)) {
135836
+ if (!drizzleOrm.is(drizzleRel, drizzleOrm.One))
135837
+ continue;
135838
+ const tableConfig = mysqlCore.getTableConfig(drizzleRel.sourceTable);
135839
+ const tableDbSchema = tableConfig.schema ?? 'public';
135840
+ const tableDbName = tableConfig.name;
135841
+ const tableTsName = schemaConfig.tableNamesMap[`${tableDbSchema}.${tableDbName}`] ?? tableDbName;
135842
+ const dbToTsColumnNamesMap = getDbToTsColumnNamesMap(drizzleRel.sourceTable);
135843
+ const columns = drizzleRel.config?.fields.map((field) => dbToTsColumnNamesMap[field.name])
135844
+ ?? [];
135845
+ const refTableConfig = mysqlCore.getTableConfig(drizzleRel.referencedTable);
135846
+ const refTableDbSchema = refTableConfig.schema ?? 'public';
135847
+ const refTableDbName = refTableConfig.name;
135848
+ const refTableTsName = schemaConfig.tableNamesMap[`${refTableDbSchema}.${refTableDbName}`]
135849
+ ?? refTableDbName;
135850
+ const dbToTsColumnNamesMapForRefTable = getDbToTsColumnNamesMap(drizzleRel.referencedTable);
135851
+ const refColumns = drizzleRel.config?.references.map((ref) => dbToTsColumnNamesMapForRefTable[ref.name])
135852
+ ?? [];
135853
+ if (tableRelations[refTableTsName] === undefined) {
135854
+ tableRelations[refTableTsName] = [];
135855
+ }
135856
+ const relation = {
135857
+ table: tableTsName,
135858
+ columns,
135859
+ refTable: refTableTsName,
135860
+ refColumns,
135861
+ refTableRels: tableRelations[refTableTsName],
135862
+ type: 'one',
135863
+ };
135864
+ // do not add duplicate relation
135865
+ if (tableRelations[tableTsName]?.some((rel) => rel.table === relation.table
135866
+ && rel.refTable === relation.refTable)) {
135867
+ console.warn(`You are providing a one-to-many relation between the '${relation.refTable}' and '${relation.table}' tables,\n`
135868
+ + `while the '${relation.table}' table object already has foreign key constraint in the schema referencing '${relation.refTable}' table.\n`
135869
+ + `In this case, the foreign key constraint will be used.\n`);
135870
+ continue;
135857
135871
  }
135872
+ relations.push(relation);
135873
+ tableRelations[tableTsName].push(relation);
135858
135874
  }
135859
135875
  }
135860
135876
  return relations;
@@ -136000,38 +136016,46 @@ const getSqliteInfo = (sqliteSchema, sqliteTables) => {
136000
136016
  const schemaConfig = drizzleOrm.extractTablesRelationalConfig(schema, drizzleOrm.createTableRelationsHelpers);
136001
136017
  const relations = [];
136002
136018
  for (const table of Object.values(schemaConfig.tables)) {
136003
- if (table.relations !== undefined) {
136004
- for (const drizzleRel of Object.values(table.relations)) {
136005
- if (drizzleOrm.is(drizzleRel, drizzleOrm.One)) {
136006
- const tableConfig = sqliteCore.getTableConfig(drizzleRel.sourceTable);
136007
- const tableDbName = tableConfig.name;
136008
- // TODO: tableNamesMap: have {public.customer: 'customer'} structure in sqlite
136009
- const tableTsName = schemaConfig.tableNamesMap[`public.${tableDbName}`] ?? tableDbName;
136010
- const dbToTsColumnNamesMap = getDbToTsColumnNamesMap(drizzleRel.sourceTable);
136011
- const columns = drizzleRel.config?.fields.map((field) => dbToTsColumnNamesMap[field.name])
136012
- ?? [];
136013
- const refTableConfig = sqliteCore.getTableConfig(drizzleRel.referencedTable);
136014
- const refTableDbName = refTableConfig.name;
136015
- const refTableTsName = schemaConfig.tableNamesMap[`public.${refTableDbName}`]
136016
- ?? refTableDbName;
136017
- const dbToTsColumnNamesMapForRefTable = getDbToTsColumnNamesMap(drizzleRel.referencedTable);
136018
- const refColumns = drizzleRel.config?.references.map((ref) => dbToTsColumnNamesMapForRefTable[ref.name])
136019
- ?? [];
136020
- if (tableRelations[refTableTsName] === undefined) {
136021
- tableRelations[refTableTsName] = [];
136022
- }
136023
- const relation = {
136024
- table: tableTsName,
136025
- columns,
136026
- refTable: refTableTsName,
136027
- refColumns,
136028
- refTableRels: tableRelations[refTableTsName],
136029
- type: 'one',
136030
- };
136031
- relations.push(relation);
136032
- tableRelations[tableTsName].push(relation);
136033
- }
136019
+ if (table.relations === undefined)
136020
+ continue;
136021
+ for (const drizzleRel of Object.values(table.relations)) {
136022
+ if (!drizzleOrm.is(drizzleRel, drizzleOrm.One))
136023
+ continue;
136024
+ const tableConfig = sqliteCore.getTableConfig(drizzleRel.sourceTable);
136025
+ const tableDbName = tableConfig.name;
136026
+ // TODO: tableNamesMap: have {public.customer: 'customer'} structure in sqlite
136027
+ const tableTsName = schemaConfig.tableNamesMap[`public.${tableDbName}`] ?? tableDbName;
136028
+ const dbToTsColumnNamesMap = getDbToTsColumnNamesMap(drizzleRel.sourceTable);
136029
+ const columns = drizzleRel.config?.fields.map((field) => dbToTsColumnNamesMap[field.name])
136030
+ ?? [];
136031
+ const refTableConfig = sqliteCore.getTableConfig(drizzleRel.referencedTable);
136032
+ const refTableDbName = refTableConfig.name;
136033
+ const refTableTsName = schemaConfig.tableNamesMap[`public.${refTableDbName}`]
136034
+ ?? refTableDbName;
136035
+ const dbToTsColumnNamesMapForRefTable = getDbToTsColumnNamesMap(drizzleRel.referencedTable);
136036
+ const refColumns = drizzleRel.config?.references.map((ref) => dbToTsColumnNamesMapForRefTable[ref.name])
136037
+ ?? [];
136038
+ if (tableRelations[refTableTsName] === undefined) {
136039
+ tableRelations[refTableTsName] = [];
136040
+ }
136041
+ const relation = {
136042
+ table: tableTsName,
136043
+ columns,
136044
+ refTable: refTableTsName,
136045
+ refColumns,
136046
+ refTableRels: tableRelations[refTableTsName],
136047
+ type: 'one',
136048
+ };
136049
+ // do not add duplicate relation
136050
+ if (tableRelations[tableTsName]?.some((rel) => rel.table === relation.table
136051
+ && rel.refTable === relation.refTable)) {
136052
+ console.warn(`You are providing a one-to-many relation between the '${relation.refTable}' and '${relation.table}' tables,\n`
136053
+ + `while the '${relation.table}' table object already has foreign key constraint in the schema referencing '${relation.refTable}' table.\n`
136054
+ + `In this case, the foreign key constraint will be used.\n`);
136055
+ continue;
136034
136056
  }
136057
+ relations.push(relation);
136058
+ tableRelations[tableTsName].push(relation);
136035
136059
  }
136036
136060
  }
136037
136061
  return relations;