fromDatabase() — drizzle-orm Function Reference
Architecture documentation for the fromDatabase() function in singlestoreSerializer.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD cb6874bf_41d2_b505_ecf8_e9397a97e640["fromDatabase()"] 67437259_0670_dcef_f238_9264f0f16394["singlestoreSerializer.ts"] cb6874bf_41d2_b505_ecf8_e9397a97e640 -->|defined in| 67437259_0670_dcef_f238_9264f0f16394 6919cccf_82c8_5444_1bad_d599b446ee9d["singlestorePushIntrospect()"] 6919cccf_82c8_5444_1bad_d599b446ee9d -->|calls| cb6874bf_41d2_b505_ecf8_e9397a97e640 bd825edb_9a4c_6e78_1e0c_752e1c95eb1f["clearDefaults()"] cb6874bf_41d2_b505_ecf8_e9397a97e640 -->|calls| bd825edb_9a4c_6e78_1e0c_752e1c95eb1f style cb6874bf_41d2_b505_ecf8_e9397a97e640 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
drizzle-kit/src/serializer/singlestoreSerializer.ts lines 434–767
export const fromDatabase = async (
db: DB,
inputSchema: string,
tablesFilter: (table: string) => boolean = (table) => true,
progressCallback?: (
stage: IntrospectStage,
count: number,
status: IntrospectStatus,
) => void,
): Promise<SingleStoreSchemaInternal> => {
const result: Record<string, Table> = {};
const internals: SingleStoreKitInternals = { tables: {}, indexes: {} };
const columns = await db.query(`select * from information_schema.columns
where table_schema = '${inputSchema}' and table_name != '__drizzle_migrations'
order by table_name, ordinal_position;`);
const response = columns as RowDataPacket[];
const schemas: string[] = [];
let columnsCount = 0;
let tablesCount = new Set();
let indexesCount = 0;
/* let viewsCount = 0; */
const idxs = await db.query(
`select * from INFORMATION_SCHEMA.STATISTICS
WHERE INFORMATION_SCHEMA.STATISTICS.TABLE_SCHEMA = '${inputSchema}' and INFORMATION_SCHEMA.STATISTICS.INDEX_NAME != 'PRIMARY';`,
);
const idxRows = idxs as RowDataPacket[];
for (const column of response) {
if (!tablesFilter(column['TABLE_NAME'] as string)) continue;
columnsCount += 1;
if (progressCallback) {
progressCallback('columns', columnsCount, 'fetching');
}
const schema: string = column['TABLE_SCHEMA'];
const tableName = column['TABLE_NAME'];
tablesCount.add(`${schema}.${tableName}`);
if (progressCallback) {
progressCallback('columns', tablesCount.size, 'fetching');
}
const columnName: string = column['COLUMN_NAME'];
const isNullable = column['IS_NULLABLE'] === 'YES'; // 'YES', 'NO'
const dataType = column['DATA_TYPE']; // varchar
const columnType = column['COLUMN_TYPE']; // varchar(256)
// const columnType = column["DATA_TYPE"];
const isPrimary = column['COLUMN_KEY'] === 'PRI'; // 'PRI', ''
let columnDefault: string | null = column['COLUMN_DEFAULT'];
const collation: string = column['CHARACTER_SET_NAME'];
const geenratedExpression: string = column['GENERATION_EXPRESSION'];
let columnExtra = column['EXTRA'];
let isAutoincrement = false; // 'auto_increment', ''
let isDefaultAnExpression = false; // 'auto_increment', ''
if (typeof column['EXTRA'] !== 'undefined') {
columnExtra = column['EXTRA'];
isAutoincrement = column['EXTRA'] === 'auto_increment'; // 'auto_increment', ''
isDefaultAnExpression = column['EXTRA'].includes('DEFAULT_GENERATED'); // 'auto_increment', ''
}
// if (isPrimary) {
// if (typeof tableToPk[tableName] === "undefined") {
// tableToPk[tableName] = [columnName];
// } else {
// tableToPk[tableName].push(columnName);
// }
// }
if (schema !== inputSchema) {
schemas.push(schema);
}
const table = result[tableName];
Domain
Subdomains
Calls
Called By
Source
Frequently Asked Questions
What does fromDatabase() do?
fromDatabase() is a function in the drizzle-orm codebase, defined in drizzle-kit/src/serializer/singlestoreSerializer.ts.
Where is fromDatabase() defined?
fromDatabase() is defined in drizzle-kit/src/serializer/singlestoreSerializer.ts at line 434.
What does fromDatabase() call?
fromDatabase() calls 1 function(s): clearDefaults.
What calls fromDatabase()?
fromDatabase() is called by 1 function(s): singlestorePushIntrospect.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free