温馨提示:本站仅提供公开网络链接索引服务,不存储、不篡改任何第三方内容,所有内容版权归原作者所有
AI智能索引来源:http://www.bun.com/docs/guides/ecosystem/drizzle
点击访问原文链接

Use Drizzle ORM with Bun - Bun

Use Drizzle ORM with Bun - BunSkip to main contentBun home pageSearch...⌘KInstall BunSearch...NavigationEcosystem & FrameworksUse Drizzle ORM with BunRuntimePackage ManagerBundlerTest RunnerGuidesReferenceBlogFeedbackdiv:first-child]:!hidden peer-[.is-custom]:[&>div:first-child]:sm:!hidden peer-[.is-custom]:[&>div:first-child]:md:!hidden peer-[.is-custom]:[&>div:first-child]:lg:!hidden peer-[.is-custom]:[&>div:first-child]:xl:!hidden">OverviewGuidesDeploymentDeploy on VercelDeploy on RailwayDeploy on RenderDeploy on AWS LambdaDeploy on DigitalOceanDeploy on Google Cloud RunRuntime & DebuggingTypeScript typesRe-map import pathsVS Code debuggerWeb debuggerHeap snapshotsBuild-time constantsDefine constantsGitHub ActionsCodesign on macOSUtilitiesUpgrade BunDetect BunGet Bun versionHash passwordGenerate UUIDBase64 encodingGzip compressionDEFLATE compressionEscape HTMLDeep equalitySleepFile URL to pathPath to file URLFind executable pathimport.meta.dirimport.meta.fileimport.meta.pathCheck entrypointGet entrypoint pathEcosystem & FrameworksAstro with BunDiscord.js with BunDocker with BunDrizzle with BunGel with BunElysia with BunExpress with BunHono with BunMongoose with BunNeon Drizzle with BunNeon Serverless Postgres with BunNext.js with BunNuxt with BunPM2 with BunPrisma ORM with BunPrisma Postgres with BunQwik with BunReact with BunRemix with BunTanStack Start with BunSentry with BunSolidStart with BunSSR React with BunStricJS with BunSvelteKit with Bunsystemd with BunVite with BunUpstash with BunHTTP & NetworkingHTTP Server with BunSimple HTTP Server with BunFetch with BunHot reload an HTTP serverStart a cluster of HTTP serversConfigure TLSProxy HTTP requests using fetch()Stream file responseUpload files via HTTP using FormDataFetch with unix domain socketsStream with iteratorsStream with Node.jsWebSocketSimple serverPub-sub serverContextual dataEnable compressionProcesses & SystemSpawn child processRead stdoutRead stderrParse command-line argumentsRead from stdinSpawn a child process and communicate using IPCListen for CTRL+COS signalsProcess uptimeRun shell commandSet time zoneSet env variablesRead env variablesPackage ManagerAdd a dependencyAdd a dev dependencyAdd an optional dependencyAdd a peer dependencyAdd a Git dependencyAdd a tarball dependencyInstall with aliasWorkspaces with BunOverride the default npm registryConfigure a scoped registryAzure Artifacts with BunJFrog Artifactory with BunAdd a trusted dependencyGenerate a yarn-compatible lockfileMigrate from npm to bunConfigure git to diff Bun's lockfileInstall Bun in GitHub ActionsTest RunnerRun testsWatch modeMigrate from JestMock functionsSpy on methodsMock system timeSnapshot testingUpdate snapshotsCoverage reportsCoverage thresholdConcurrent test globSkip testsTodo testsTest timeoutBail earlyRe-run testsTesting LibraryDOM testsTest SvelteRuntime & DebuggingVS Code debuggerWeb debuggerHeap snapshotsBuild-time constantsDefine constantsGitHub ActionsCodesign on macOSModule SystemImport JSONImport TOMLImport YAMLImport JSON5Import HTMLimport.meta.dirimport.meta.fileimport.meta.pathCheck entrypointGet entrypoint pathFile SystemRead as stringRead to BufferRead to Uint8ArrayRead to ArrayBufferRead JSON fileGet MIME typeCheck file existsWatch directoryRead as streamWrite string to fileWrite BlobWrite ResponseAppend to fileIncremental writeWrite streamWrite to stdoutWrite file to stdoutCopy fileDelete fileDelete filesDelete directoriesUtilitiesHash passwordGenerate UUIDBase64 encodingGzip compressionDEFLATE compressionEscape HTMLDeep equalitySleepFile URL to pathPath to file URLFind executable pathHTML ProcessingExtract links using HTMLRewriterOpenGraph tagsBinary DataArrayBuffer to stringArrayBuffer to BufferArrayBuffer to BlobArrayBuffer to ArrayArrayBuffer to Uint8ArrayBuffer to stringBuffer to ArrayBufferBuffer to BlobBuffer to Uint8ArrayBuffer to ReadableStreamBlob to stringBlob to ArrayBufferBlob to Uint8ArrayBlob to DataViewBlob to ReadableStreamUint8Array to stringUint8Array to ArrayBufferUint8Array to BufferUint8Array to BlobUint8Array to DataViewUint8Array to ReadableStreamDataView to stringStreamsStream to stringStream to JSONStream to BlobStream to BufferStream to ArrayBufferStream to Uint8ArrayStream to arrayReadable to stringReadable to JSONReadable to BlobReadable to Uint8ArrayReadable to ArrayBufferEcosystem & FrameworksUse Drizzle ORM with BunCopy pagespan]:line-clamp-1 overflow-hidden group flex items-center py-0.5 gap-1 text-sm text-gray-950/50 dark:text-white/50 group-hover:text-gray-950/70 dark:group-hover:text-white/70 rounded-none rounded-r-xl border px-3 border-gray-200 aspect-square dark:border-white/[0.07] bg-background-light dark:bg-background-dark hover:bg-gray-600/5 dark:hover:bg-gray-200/5" aria-label="More actions" type="button" id="radix-_R_2shjinpfd9rqaabsnpfdb_" aria-haspopup="menu" aria-expanded="false" data-state="closed">Copy pagespan]:line-clamp-1 overflow-hidden group flex items-center py-0.5 gap-1 text-sm text-gray-950/50 dark:text-white/50 group-hover:text-gray-950/70 dark:group-hover:text-white/70 rounded-none rounded-r-xl border px-3 border-gray-200 aspect-square dark:border-white/[0.07] bg-background-light dark:bg-background-dark hover:bg-gray-600/5 dark:hover:bg-gray-200/5" aria-label="More actions" type="button" id="radix-_R_5hjinpfd9rqaabsnpfdb_" aria-haspopup="menu" aria-expanded="false" data-state="closed">Drizzle is an ORM that supports both a SQL-like “query builder” API and an ORM-like Queries API. It supports the bun:sqlite built-in module. Let’s get started by creating a fresh project with bun init and installing Drizzle. terminalCopybun init -y bun add drizzle-orm bun add -D drizzle-kit Then we’ll connect to a SQLite database using the bun:sqlite module and create the Drizzle database instance. db.tsCopyimport { drizzle } from "drizzle-orm/bun-sqlite"; import { Database } from "bun:sqlite"; const sqlite = new Database("sqlite.db"); export const db = drizzle(sqlite); To see the database in action, add these lines to index.ts. index.tsCopyimport { db } from "./db"; import { sql } from "drizzle-orm"; const query = sql`select "hello world" as text`; const result = db.gettext: string }>(query); console.log(result); Then run index.ts with Bun. Bun will automatically create sqlite.db and execute the query. terminalCopybun run index.ts Copy{ text: "hello world" } Lets give our database a proper schema. Create a schema.ts file and define a movies table. schema.tsCopyimport { sqliteTable, text, integer } from "drizzle-orm/sqlite-core"; export const movies = sqliteTable("movies", { id: integer("id").primaryKey(), title: text("name"), releaseYear: integer("release_year"), }); We can use the drizzle-kit CLI to generate an initial SQL migration. terminalCopybunx drizzle-kit generate --dialect sqlite --schema ./schema.ts This creates a new drizzle directory containing a .sql migration file and meta directory. File TreeCopydrizzle ├── 0000_ordinary_beyonder.sql └── meta ├── 0000_snapshot.json └── _journal.json We can execute these migrations with a simple migrate.ts script. This script creates a new connection to a SQLite database that writes to sqlite.db, then executes all unexecuted migrations in the drizzle directory. migrate.tsCopyimport { migrate } from "drizzle-orm/bun-sqlite/migrator"; import { drizzle } from "drizzle-orm/bun-sqlite"; import { Database } from "bun:sqlite"; const sqlite = new Database("sqlite.db"); const db = drizzle(sqlite); migrate(db, { migrationsFolder: "./drizzle" }); We can run this script with bun to execute the migration. terminalCopybun run migrate.ts Now that we have a database, let’s add some data to it. Create a seed.ts file with the following contents. seed.tsCopyimport { db } from "./db"; import * as schema from "./schema"; await db.insert(schema.movies).values([ { title: "The Matrix", releaseYear: 1999, }, { title: "The Matrix Reloaded", releaseYear: 2003, }, { title: "The Matrix Revolutions", releaseYear: 2003, }, ]); console.log(`Seeding complete.`); Then run this file. terminalCopybun run seed.ts CopySeeding complete. We finally have a database with a schema and some sample data. Let’s use Drizzle to query it. Replace the contents of index.ts with the following. index.tsCopyimport * as schema from "./schema"; import { db } from "./db"; const result = await db.select().from(schema.movies); console.log(result); Then run the file. You should see the three movies we inserted. terminalCopybun run index.ts Copy[ { id: 1, title: "The Matrix", releaseYear: 1999 }, { id: 2, title: "The Matrix Reloaded", releaseYear: 2003 }, { id: 3, title: "The Matrix Revolutions", releaseYear: 2003 } ] Refer to the Drizzle website for complete documentation.

Was this page helpful?

YesNoSuggest editsRaise issueContainerize a Bun application with DockerPreviousUse Gel with BunNext⌘IxgithubdiscordyoutubePowered by

智能索引记录