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

drizzleForSQLite() — drizzle-orm Function Reference

Architecture documentation for the drizzleForSQLite() function in studio.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  1a968317_891c_454b_77a6_20e6f61521b5["drizzleForSQLite()"]
  82de12f8_a8ca_9d38_8da8_9ac945d81e01["studio.ts"]
  1a968317_891c_454b_77a6_20e6f61521b5 -->|defined in| 82de12f8_a8ca_9d38_8da8_9ac945d81e01
  a3bd30a5_eb46_2554_e473_0327928a9aaf["startStudioSQLiteServer()"]
  a3bd30a5_eb46_2554_e473_0327928a9aaf -->|calls| 1a968317_891c_454b_77a6_20e6f61521b5
  72630e5c_93c3_75d3_29f3_af0928ebe15c["studio.handler()"]
  72630e5c_93c3_75d3_29f3_af0928ebe15c -->|calls| 1a968317_891c_454b_77a6_20e6f61521b5
  d7ecc303_7005_43ee_f3ad_fa9fa658b409["getCustomDefaults()"]
  1a968317_891c_454b_77a6_20e6f61521b5 -->|calls| d7ecc303_7005_43ee_f3ad_fa9fa658b409
  style 1a968317_891c_454b_77a6_20e6f61521b5 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-kit/src/serializer/studio.ts lines 371–433

export const drizzleForSQLite = async (
	credentials: SqliteCredentials | D1BindingCredentials,
	sqliteSchema: Record<string, Record<string, AnySQLiteTable>>,
	relations: Record<string, Relations>,
	schemaFiles?: SchemaFile[],
	casing?: CasingType,
): Promise<Setup> => {
	const customDefaults = getCustomDefaults(sqliteSchema, casing);

	if ('driver' in credentials && credentials.driver === 'd1') {
		const { connectToD1 } = await import('../cli/connections');
		const sqliteDB = await connectToD1(credentials.binding);

		const dbUrl = 'd1://binding';
		const dbHash = createHash('sha256').update(dbUrl).digest('hex');

		return {
			dbHash,
			dialect: 'sqlite',
			driver: 'd1',
			packageName: 'd1',
			proxy: sqliteDB.proxy,
			transactionProxy: sqliteDB.transactionProxy,
			customDefaults,
			schema: sqliteSchema,
			relations,
			schemaFiles,
			casing,
		};
	}

	const { connectToSQLite } = await import('../cli/connections');
	const sqliteDB = await connectToSQLite(credentials);

	let dbUrl: string;

	if ('driver' in credentials) {
		const { driver } = credentials;
		if (driver === 'd1-http') {
			dbUrl = `d1-http://${credentials.accountId}/${credentials.databaseId}/${credentials.token}`;
		} else {
			assertUnreachable(driver);
		}
	} else {
		dbUrl = credentials.url;
	}

	const dbHash = createHash('sha256').update(dbUrl).digest('hex');

	return {
		dbHash,
		dialect: 'sqlite',
		driver: 'driver' in credentials ? credentials.driver : undefined,
		packageName: sqliteDB.packageName,
		proxy: sqliteDB.proxy,
		transactionProxy: sqliteDB.transactionProxy,
		customDefaults,
		schema: sqliteSchema,
		relations,
		schemaFiles,
		casing,
	};
};

Domain

Subdomains

Frequently Asked Questions

What does drizzleForSQLite() do?
drizzleForSQLite() is a function in the drizzle-orm codebase, defined in drizzle-kit/src/serializer/studio.ts.
Where is drizzleForSQLite() defined?
drizzleForSQLite() is defined in drizzle-kit/src/serializer/studio.ts at line 371.
What does drizzleForSQLite() call?
drizzleForSQLite() calls 1 function(s): getCustomDefaults.
What calls drizzleForSQLite()?
drizzleForSQLite() is called by 2 function(s): startStudioSQLiteServer, studio.handler.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free