Home / Function/ fromDatabase() — drizzle-orm Function Reference

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

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