mysqlSerializer.ts — drizzle-orm Source File
Architecture documentation for mysqlSerializer.ts, a typescript file in the drizzle-orm codebase. 25 imports, 3 dependents.
Entity Profile
Dependency Diagram
graph LR 1f633f0f_d981_8483_0b8f_fbabf0333ced["mysqlSerializer.ts"] 502fb53b_89d2_ec40_3a24_f05850833f68["outputs.ts"] 1f633f0f_d981_8483_0b8f_fbabf0333ced --> 502fb53b_89d2_ec40_3a24_f05850833f68 217e2cbd_4fb7_ceab_251c_5733ece08a8f["views.ts"] 1f633f0f_d981_8483_0b8f_fbabf0333ced --> 217e2cbd_4fb7_ceab_251c_5733ece08a8f 09093721_c406_7222_9827_ed44d69a25bd["IntrospectStage"] 1f633f0f_d981_8483_0b8f_fbabf0333ced --> 09093721_c406_7222_9827_ed44d69a25bd 520362d9_670d_b6d8_02b1_d2de488c5e21["IntrospectStatus"] 1f633f0f_d981_8483_0b8f_fbabf0333ced --> 520362d9_670d_b6d8_02b1_d2de488c5e21 f2ee16c1_40e6_43f3_15b2_c391a3ac170b["mysqlSchema.ts"] 1f633f0f_d981_8483_0b8f_fbabf0333ced --> f2ee16c1_40e6_43f3_15b2_c391a3ac170b db1af279_1679_84af_1e53_0bb821c5aa1e["CheckConstraint"] 1f633f0f_d981_8483_0b8f_fbabf0333ced --> db1af279_1679_84af_1e53_0bb821c5aa1e 2c8e6825_d659_16ea_af7a_522f31b91540["Column"] 1f633f0f_d981_8483_0b8f_fbabf0333ced --> 2c8e6825_d659_16ea_af7a_522f31b91540 ad771e19_00c1_26c8_c5f8_3edc0c623fea["ForeignKey"] 1f633f0f_d981_8483_0b8f_fbabf0333ced --> ad771e19_00c1_26c8_c5f8_3edc0c623fea 64501bef_09a5_1e94_0e0a_15a28262db02["Index"] 1f633f0f_d981_8483_0b8f_fbabf0333ced --> 64501bef_09a5_1e94_0e0a_15a28262db02 0d278f98_433a_d89b_46fa_70b59e780ebe["MySqlKitInternals"] 1f633f0f_d981_8483_0b8f_fbabf0333ced --> 0d278f98_433a_d89b_46fa_70b59e780ebe 4dfa8fd0_46f4_3013_c18d_b486cff13b75["MySqlSchemaInternal"] 1f633f0f_d981_8483_0b8f_fbabf0333ced --> 4dfa8fd0_46f4_3013_c18d_b486cff13b75 84587d26_b8cd_b303_0593_3f9c9b051e01["PrimaryKey"] 1f633f0f_d981_8483_0b8f_fbabf0333ced --> 84587d26_b8cd_b303_0593_3f9c9b051e01 9b983cca_d8cf_f392_5545_aab8e936bcfe["Table"] 1f633f0f_d981_8483_0b8f_fbabf0333ced --> 9b983cca_d8cf_f392_5545_aab8e936bcfe f304fca3_008f_3fcc_5958_8d6c00dd13e6["UniqueConstraint"] 1f633f0f_d981_8483_0b8f_fbabf0333ced --> f304fca3_008f_3fcc_5958_8d6c00dd13e6 style 1f633f0f_d981_8483_0b8f_fbabf0333ced fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import chalk from 'chalk';
import { getTableName, is, SQL } from 'drizzle-orm';
import {
AnyMySqlTable,
getTableConfig,
getViewConfig,
MySqlColumn,
MySqlDialect,
MySqlView,
type PrimaryKey as PrimaryKeyORM,
uniqueKeyName,
} from 'drizzle-orm/mysql-core';
import { RowDataPacket } from 'mysql2/promise';
import { CasingType } from 'src/cli/validations/common';
import { withStyle } from '../cli/validations/outputs';
import { IntrospectStage, IntrospectStatus } from '../cli/views';
import {
CheckConstraint,
Column,
ForeignKey,
Index,
MySqlKitInternals,
MySqlSchemaInternal,
PrimaryKey,
Table,
UniqueConstraint,
View,
} from '../serializer/mysqlSchema';
import { type DB, escapeSingleQuotes } from '../utils';
import { getColumnCasing, sqlToStr } from './utils';
export const indexName = (tableName: string, columns: string[]) => {
return `${tableName}_${columns.join('_')}_index`;
};
const handleEnumType = (type: string) => {
let str = type.split('(')[1];
str = str.substring(0, str.length - 1);
const values = str.split(',').map((v) => `'${escapeSingleQuotes(v.substring(1, v.length - 1))}'`);
return `enum(${values.join(',')})`;
};
export const generateMySqlSnapshot = (
tables: AnyMySqlTable[],
views: MySqlView[],
casing: CasingType | undefined,
): MySqlSchemaInternal => {
const dialect = new MySqlDialect({ casing });
const result: Record<string, Table> = {};
const resultViews: Record<string, View> = {};
const internal: MySqlKitInternals = { tables: {}, indexes: {} };
for (const table of tables) {
const {
name: tableName,
columns,
indexes,
foreignKeys,
schema,
checks,
// ... (940 more lines)
Domain
Subdomains
Dependencies
Imported By
Source
Frequently Asked Questions
What does mysqlSerializer.ts do?
mysqlSerializer.ts is a source file in the drizzle-orm codebase, written in typescript. It belongs to the DrizzleKit domain, SnapshotSerializer subdomain.
What functions are defined in mysqlSerializer.ts?
mysqlSerializer.ts defines 5 function(s): clearDefaults, fromDatabase, generateMySqlSnapshot, handleEnumType, indexName.
What does mysqlSerializer.ts depend on?
mysqlSerializer.ts imports 25 module(s): CheckConstraint, Column, ForeignKey, Index, IntrospectStage, IntrospectStatus, MySqlKitInternals, MySqlSchemaInternal, and 17 more.
What files import mysqlSerializer.ts?
mysqlSerializer.ts is imported by 3 file(s): api.ts, introspect.ts, mysqlIntrospect.ts.
Where is mysqlSerializer.ts in the architecture?
mysqlSerializer.ts is located at drizzle-kit/src/serializer/mysqlSerializer.ts (domain: DrizzleKit, subdomain: SnapshotSerializer, directory: drizzle-kit/src/serializer).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free