fromDatabase() — drizzle-orm Function Reference
Architecture documentation for the fromDatabase() function in mysqlSerializer.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD 5ac9c01c_6690_a9da_65af_5a848a7f5362["fromDatabase()"] 1f633f0f_d981_8483_0b8f_fbabf0333ced["mysqlSerializer.ts"] 5ac9c01c_6690_a9da_65af_5a848a7f5362 -->|defined in| 1f633f0f_d981_8483_0b8f_fbabf0333ced e301d4cf_9417_da89_bf52_34424366b957["mysqlPushIntrospect()"] e301d4cf_9417_da89_bf52_34424366b957 -->|calls| 5ac9c01c_6690_a9da_65af_5a848a7f5362 4ae34aa0_5941_4e95_5fdb_b18c0f475b6e["clearDefaults()"] 5ac9c01c_6690_a9da_65af_5a848a7f5362 -->|calls| 4ae34aa0_5941_4e95_5fdb_b18c0f475b6e 6a0cfd17_5e20_42bb_3596_ae02093b0fda["escapeSingleQuotes()"] 5ac9c01c_6690_a9da_65af_5a848a7f5362 -->|calls| 6a0cfd17_5e20_42bb_3596_ae02093b0fda style 5ac9c01c_6690_a9da_65af_5a848a7f5362 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
drizzle-kit/src/serializer/mysqlSerializer.ts lines 564–999
export const fromDatabase = async (
db: DB,
inputSchema: string,
tablesFilter: (table: string) => boolean = (table) => true,
progressCallback?: (
stage: IntrospectStage,
count: number,
status: IntrospectStatus,
) => void,
): Promise<MySqlSchemaInternal> => {
const result: Record<string, Table> = {};
const internals: MySqlKitInternals = { 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 foreignKeysCount = 0;
let checksCount = 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 isPrimary = column['COLUMN_KEY'] === 'PRI'; // 'PRI', ''
const columnDefault: string = 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
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/mysqlSerializer.ts.
Where is fromDatabase() defined?
fromDatabase() is defined in drizzle-kit/src/serializer/mysqlSerializer.ts at line 564.
What does fromDatabase() call?
fromDatabase() calls 2 function(s): clearDefaults, escapeSingleQuotes.
What calls fromDatabase()?
fromDatabase() is called by 1 function(s): mysqlPushIntrospect.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free