getSqliteInfo() — drizzle-orm Function Reference
Architecture documentation for the getSqliteInfo() function in index.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD e8a71082_205b_2757_2e0b_855628ebd207["getSqliteInfo()"] 0fabdd81_61c9_bb7c_7ddf_dde7a6071abc["index.ts"] e8a71082_205b_2757_2e0b_855628ebd207 -->|defined in| 0fabdd81_61c9_bb7c_7ddf_dde7a6071abc 098c3fad_5eaa_f8ac_60ed_8791f3fd9e74["seedSqlite()"] 098c3fad_5eaa_f8ac_60ed_8791f3fd9e74 -->|calls| e8a71082_205b_2757_2e0b_855628ebd207 d8406fd4_31dc_5e40_765e_d2ea7f0d3134["isRelationCyclic()"] e8a71082_205b_2757_2e0b_855628ebd207 -->|calls| d8406fd4_31dc_5e40_765e_d2ea7f0d3134 style e8a71082_205b_2757_2e0b_855628ebd207 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
drizzle-seed/src/index.ts lines 1285–1502
const getSqliteInfo = (
sqliteSchema: { [key: string]: SQLiteTable | Relations },
sqliteTables: { [key: string]: SQLiteTable },
) => {
let tableConfig: ReturnType<typeof getSqliteTableConfig>;
let dbToTsColumnNamesMap: { [key: string]: string };
const dbToTsTableNamesMap: { [key: string]: string } = Object.fromEntries(
Object.entries(sqliteTables).map(([key, value]) => [getTableName(value), key]),
);
const tables: Table[] = [];
const relations: RelationWithReferences[] = [];
const dbToTsColumnNamesMapGlobal: {
[tableName: string]: { [dbColumnName: string]: string };
} = {};
const tableRelations: { [tableName: string]: RelationWithReferences[] } = {};
const getDbToTsColumnNamesMap = (table: SQLiteTable) => {
let dbToTsColumnNamesMap: { [dbColName: string]: string } = {};
const tableName = getTableName(table);
if (Object.hasOwn(dbToTsColumnNamesMapGlobal, tableName)) {
dbToTsColumnNamesMap = dbToTsColumnNamesMapGlobal[tableName]!;
return dbToTsColumnNamesMap;
}
const tableConfig = getSqliteTableConfig(table);
for (const [tsCol, col] of Object.entries(tableConfig.columns[0]!.table)) {
dbToTsColumnNamesMap[col.name] = tsCol;
}
dbToTsColumnNamesMapGlobal[tableName] = dbToTsColumnNamesMap;
return dbToTsColumnNamesMap;
};
const transformFromDrizzleRelation = (
schema: Record<string, SQLiteTable | Relations>,
getDbToTsColumnNamesMap: (table: SQLiteTable) => {
[dbColName: string]: string;
},
tableRelations: {
[tableName: string]: RelationWithReferences[];
},
) => {
const schemaConfig = extractTablesRelationalConfig(schema, createTableRelationsHelpers);
const relations: RelationWithReferences[] = [];
for (const table of Object.values(schemaConfig.tables)) {
if (table.relations === undefined) continue;
for (const drizzleRel of Object.values(table.relations)) {
if (!is(drizzleRel, One)) continue;
const tableConfig = getSqliteTableConfig(drizzleRel.sourceTable as SQLiteTable);
const tableDbName = tableConfig.name;
// TODO: tableNamesMap: have {public.customer: 'customer'} structure in sqlite
const tableTsName = schemaConfig.tableNamesMap[`public.${tableDbName}`] ?? tableDbName;
const dbToTsColumnNamesMap = getDbToTsColumnNamesMap(drizzleRel.sourceTable as SQLiteTable);
const columns = drizzleRel.config?.fields.map((field) => dbToTsColumnNamesMap[field.name] as string)
?? [];
const refTableConfig = getSqliteTableConfig(drizzleRel.referencedTable as SQLiteTable);
const refTableDbName = refTableConfig.name;
const refTableTsName = schemaConfig.tableNamesMap[`public.${refTableDbName}`]
?? refTableDbName;
const dbToTsColumnNamesMapForRefTable = getDbToTsColumnNamesMap(drizzleRel.referencedTable as SQLiteTable);
const refColumns = drizzleRel.config?.references.map((ref) =>
dbToTsColumnNamesMapForRefTable[ref.name] as string
)
?? [];
if (tableRelations[refTableTsName] === undefined) {
tableRelations[refTableTsName] = [];
}
const relation: RelationWithReferences = {
table: tableTsName,
columns,
refTable: refTableTsName,
refColumns,
Domain
Subdomains
Defined In
Calls
Called By
Source
Frequently Asked Questions
What does getSqliteInfo() do?
getSqliteInfo() is a function in the drizzle-orm codebase, defined in drizzle-seed/src/index.ts.
Where is getSqliteInfo() defined?
getSqliteInfo() is defined in drizzle-seed/src/index.ts at line 1285.
What does getSqliteInfo() call?
getSqliteInfo() calls 1 function(s): isRelationCyclic.
What calls getSqliteInfo()?
getSqliteInfo() is called by 1 function(s): seedSqlite.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free