[{"data":1,"prerenderedAt":896},["ShallowReactive",2],{"navigation":3,"-integrations-drizzle":104,"-integrations-drizzle-surround":891},[4,21,82],{"title":5,"path":6,"stem":7,"children":8,"icon":10},"Getting Started","/guide","1.guide/1.index",[9,11,16],{"title":5,"path":6,"stem":7,"icon":10},"ph:book-open-duotone",{"title":12,"path":13,"stem":14,"icon":15},"HTTP Server","/guide/http-server","1.guide/3.http-server","material-symbols:http",{"title":17,"path":18,"stem":19,"icon":20},"Custom Connectors","/guide/custom-connector","1.guide/4.custom-connector","material-symbols-light:dashboard-customize",{"title":22,"path":23,"stem":24,"children":25,"icon":27},"Connectors","/connectors","2.connectors/1.index",[26,28,33,38,43,48,53,58,63,67,72,77],{"title":22,"path":23,"stem":24,"icon":27},"gravity-ui:plug-connection",{"title":29,"path":30,"stem":31,"icon":32},"Bun SQlite","/connectors/bun","2.connectors/bun","simple-icons:bun",{"title":34,"path":35,"stem":36,"icon":37},"Cloudflare","/connectors/cloudflare","2.connectors/cloudflare","devicon-plain:cloudflareworkers",{"title":39,"path":40,"stem":41,"icon":42},"LibSQL","/connectors/libsql","2.connectors/libsql","clarity:node-line",{"title":44,"path":45,"stem":46,"icon":47},"MySQL","/connectors/mysql","2.connectors/mysql","simple-icons:mysql",{"title":49,"path":50,"stem":51,"icon":52},"NEON","/connectors/neon","2.connectors/neon","cbi:neon",{"title":54,"path":55,"stem":56,"icon":57},"PGlite","/connectors/pglite","2.connectors/pglite","simple-icons:postgresql",{"title":59,"path":60,"stem":61,"icon":62},"PlanetScale","/connectors/planetscale","2.connectors/planetscale","simple-icons:planetscale",{"title":64,"path":65,"stem":66,"icon":57},"PostgreSQL","/connectors/postgresql","2.connectors/postgresql",{"title":68,"path":69,"stem":70,"icon":71},"SQLite","/connectors/sqlite","2.connectors/sqlite","simple-icons:sqlite",{"title":73,"path":74,"stem":75,"icon":76},"Turso","/connectors/turso","2.connectors/turso","simple-icons:turso",{"title":78,"path":79,"stem":80,"icon":81},"Vercel","/connectors/vercel","2.connectors/vercel","radix-icons:vercel-logo",{"title":83,"path":84,"stem":85,"children":86,"icon":88},"Integrations","/integrations","3.integrations/1.index",[87,89,94,99],{"title":83,"path":84,"stem":85,"icon":88},"carbon:property-relationship",{"title":90,"path":91,"stem":92,"icon":93},"Drizzle","/integrations/drizzle","3.integrations/drizzle","simple-icons:drizzle",{"title":95,"path":96,"stem":97,"icon":98},"Kysely","/integrations/kysely","3.integrations/kysely","mynaui:letter-k",{"title":100,"path":101,"stem":102,"icon":103},"Prisma","/integrations/prisma","3.integrations/prisma","simple-icons:prisma",{"id":105,"title":90,"body":106,"description":885,"extension":886,"meta":887,"navigation":888,"path":91,"seo":889,"stem":92,"__hash__":890},"content/3.integrations/drizzle.md",{"type":107,"value":108,"toc":881,"icon":93},"minimark",[109,113,118,122,355,358,489,492,551,554,778,782,789,877],[110,111],"read-more",{"to":112},"https://orm.drizzle.team",[114,115,117],"h2",{"id":116},"example","Example",[119,120,121],"p",{},"Define your database schema using Drizzle's schema system:",[123,124,130],"pre",{"className":125,"code":126,"filename":127,"language":128,"meta":129,"style":129},"language-ts shiki shiki-themes github-light github-dark github-dark","import { sqliteTable, text, integer } from \"drizzle-orm/sqlite-core\";\n\nexport const users = sqliteTable('users', {\n  id: integer('id').primaryKey({ autoIncrement: true }),\n  fullName: text('full_name').notNull(),\n  email: text('email').notNull().unique(),\n  createdAt: integer('created_at', { mode: 'timestamp' }).$defaultFn(() => new Date()),\n});\n\nexport type User = typeof users.$inferSelect;\nexport type NewUser = typeof users.$inferInsert;\n","schema.ts","ts","",[131,132,133,156,163,192,221,243,268,308,314,319,338],"code",{"__ignoreMap":129},[134,135,138,142,146,149,153],"span",{"class":136,"line":137},"line",1,[134,139,141],{"class":140},"so5gQ","import",[134,143,145],{"class":144},"slsVL"," { sqliteTable, text, integer } ",[134,147,148],{"class":140},"from",[134,150,152],{"class":151},"sfrk1"," \"drizzle-orm/sqlite-core\"",[134,154,155],{"class":144},";\n",[134,157,159],{"class":136,"line":158},2,[134,160,162],{"emptyLinePlaceholder":161},true,"\n",[134,164,166,169,172,176,179,183,186,189],{"class":136,"line":165},3,[134,167,168],{"class":140},"export",[134,170,171],{"class":140}," const",[134,173,175],{"class":174},"suiK_"," users",[134,177,178],{"class":140}," =",[134,180,182],{"class":181},"shcOC"," sqliteTable",[134,184,185],{"class":144},"(",[134,187,188],{"class":151},"'users'",[134,190,191],{"class":144},", {\n",[134,193,195,198,201,203,206,209,212,215,218],{"class":136,"line":194},4,[134,196,197],{"class":144},"  id: ",[134,199,200],{"class":181},"integer",[134,202,185],{"class":144},[134,204,205],{"class":151},"'id'",[134,207,208],{"class":144},").",[134,210,211],{"class":181},"primaryKey",[134,213,214],{"class":144},"({ autoIncrement: ",[134,216,217],{"class":174},"true",[134,219,220],{"class":144}," }),\n",[134,222,224,227,230,232,235,237,240],{"class":136,"line":223},5,[134,225,226],{"class":144},"  fullName: ",[134,228,229],{"class":181},"text",[134,231,185],{"class":144},[134,233,234],{"class":151},"'full_name'",[134,236,208],{"class":144},[134,238,239],{"class":181},"notNull",[134,241,242],{"class":144},"(),\n",[134,244,246,249,251,253,256,258,260,263,266],{"class":136,"line":245},6,[134,247,248],{"class":144},"  email: ",[134,250,229],{"class":181},[134,252,185],{"class":144},[134,254,255],{"class":151},"'email'",[134,257,208],{"class":144},[134,259,239],{"class":181},[134,261,262],{"class":144},"().",[134,264,265],{"class":181},"unique",[134,267,242],{"class":144},[134,269,271,274,276,278,281,284,287,290,293,296,299,302,305],{"class":136,"line":270},7,[134,272,273],{"class":144},"  createdAt: ",[134,275,200],{"class":181},[134,277,185],{"class":144},[134,279,280],{"class":151},"'created_at'",[134,282,283],{"class":144},", { mode: ",[134,285,286],{"class":151},"'timestamp'",[134,288,289],{"class":144}," }).",[134,291,292],{"class":181},"$defaultFn",[134,294,295],{"class":144},"(() ",[134,297,298],{"class":140},"=>",[134,300,301],{"class":140}," new",[134,303,304],{"class":181}," Date",[134,306,307],{"class":144},"()),\n",[134,309,311],{"class":136,"line":310},8,[134,312,313],{"class":144},"});\n",[134,315,317],{"class":136,"line":316},9,[134,318,162],{"emptyLinePlaceholder":161},[134,320,322,324,327,330,332,335],{"class":136,"line":321},10,[134,323,168],{"class":140},[134,325,326],{"class":140}," type",[134,328,329],{"class":181}," User",[134,331,178],{"class":140},[134,333,334],{"class":140}," typeof",[134,336,337],{"class":144}," users.$inferSelect;\n",[134,339,341,343,345,348,350,352],{"class":136,"line":340},11,[134,342,168],{"class":140},[134,344,326],{"class":140},[134,346,347],{"class":181}," NewUser",[134,349,178],{"class":140},[134,351,334],{"class":140},[134,353,354],{"class":144}," users.$inferInsert;\n",[119,356,357],{},"Initialize your database with Drizzle integration:",[123,359,362],{"className":125,"code":360,"filename":361,"language":128,"meta":129,"style":129},"import { createDatabase } from \"db0\";\nimport sqlite from \"db0/connectors/better-sqlite3\";\nimport { drizzle } from \"db0/integrations/drizzle\";\nimport * as schema from \"./schema\";\n\n// Initialize DB instance with SQLite connector\nconst db0 = createDatabase(sqlite({ name: 'database.sqlite' }));\n\n// Create Drizzle instance with schema\nexport const db = drizzle(db0, { schema });\n","database.ts",[131,363,364,378,392,406,426,430,436,463,467,472],{"__ignoreMap":129},[134,365,366,368,371,373,376],{"class":136,"line":137},[134,367,141],{"class":140},[134,369,370],{"class":144}," { createDatabase } ",[134,372,148],{"class":140},[134,374,375],{"class":151}," \"db0\"",[134,377,155],{"class":144},[134,379,380,382,385,387,390],{"class":136,"line":158},[134,381,141],{"class":140},[134,383,384],{"class":144}," sqlite ",[134,386,148],{"class":140},[134,388,389],{"class":151}," \"db0/connectors/better-sqlite3\"",[134,391,155],{"class":144},[134,393,394,396,399,401,404],{"class":136,"line":165},[134,395,141],{"class":140},[134,397,398],{"class":144}," { drizzle } ",[134,400,148],{"class":140},[134,402,403],{"class":151}," \"db0/integrations/drizzle\"",[134,405,155],{"class":144},[134,407,408,410,413,416,419,421,424],{"class":136,"line":194},[134,409,141],{"class":140},[134,411,412],{"class":174}," *",[134,414,415],{"class":140}," as",[134,417,418],{"class":144}," schema ",[134,420,148],{"class":140},[134,422,423],{"class":151}," \"./schema\"",[134,425,155],{"class":144},[134,427,428],{"class":136,"line":223},[134,429,162],{"emptyLinePlaceholder":161},[134,431,432],{"class":136,"line":245},[134,433,435],{"class":434},"sCsY4","// Initialize DB instance with SQLite connector\n",[134,437,438,441,444,446,449,451,454,457,460],{"class":136,"line":270},[134,439,440],{"class":140},"const",[134,442,443],{"class":174}," db0",[134,445,178],{"class":140},[134,447,448],{"class":181}," createDatabase",[134,450,185],{"class":144},[134,452,453],{"class":181},"sqlite",[134,455,456],{"class":144},"({ name: ",[134,458,459],{"class":151},"'database.sqlite'",[134,461,462],{"class":144}," }));\n",[134,464,465],{"class":136,"line":310},[134,466,162],{"emptyLinePlaceholder":161},[134,468,469],{"class":136,"line":316},[134,470,471],{"class":434},"// Create Drizzle instance with schema\n",[134,473,474,476,478,481,483,486],{"class":136,"line":321},[134,475,168],{"class":140},[134,477,171],{"class":140},[134,479,480],{"class":174}," db",[134,482,178],{"class":140},[134,484,485],{"class":181}," drizzle",[134,487,488],{"class":144},"(db0, { schema });\n",[119,490,491],{},"Use Drizzle's migration system to create tables:",[123,493,497],{"className":494,"code":495,"language":496,"meta":129,"style":129},"language-bash shiki shiki-themes github-light github-dark github-dark","# Generate migration from schema\nnpx drizzle-kit generate\n\n# Apply migrations\nnpx drizzle-kit migrate\n\n# Or push schema directly (development)\nnpx drizzle-kit push\n","bash",[131,498,499,504,515,519,524,533,537,542],{"__ignoreMap":129},[134,500,501],{"class":136,"line":137},[134,502,503],{"class":434},"# Generate migration from schema\n",[134,505,506,509,512],{"class":136,"line":158},[134,507,508],{"class":181},"npx",[134,510,511],{"class":151}," drizzle-kit",[134,513,514],{"class":151}," generate\n",[134,516,517],{"class":136,"line":165},[134,518,162],{"emptyLinePlaceholder":161},[134,520,521],{"class":136,"line":194},[134,522,523],{"class":434},"# Apply migrations\n",[134,525,526,528,530],{"class":136,"line":223},[134,527,508],{"class":181},[134,529,511],{"class":151},[134,531,532],{"class":151}," migrate\n",[134,534,535],{"class":136,"line":245},[134,536,162],{"emptyLinePlaceholder":161},[134,538,539],{"class":136,"line":270},[134,540,541],{"class":434},"# Or push schema directly (development)\n",[134,543,544,546,548],{"class":136,"line":310},[134,545,508],{"class":181},[134,547,511],{"class":151},[134,549,550],{"class":151}," push\n",[119,552,553],{},"Then use fully typed queries:",[123,555,558],{"className":125,"code":556,"filename":557,"language":128,"meta":129,"style":129},"import { db, users, type NewUser } from \"./database\";\n\n// Insert a new user with type safety\nconst newUser: NewUser = {\n  fullName: 'John Doe',\n  email: 'john@example.com',\n  createdAt: new Date()\n};\n\nconst insertedUser = await db.insert(users).values(newUser).returning().get()\n\n// Query users with full type safety\nconst allUsers = await db.select().from(users);\n\n// Query with conditions\nconst johnDoe = await db.select()\n  .from(users)\n  .where(eq(users.email, 'john@example.com'));\n","queries.ts",[131,559,560,580,584,589,606,616,625,637,642,646,683,687,693,717,722,728,746,757],{"__ignoreMap":129},[134,561,562,564,567,570,573,575,578],{"class":136,"line":137},[134,563,141],{"class":140},[134,565,566],{"class":144}," { db, users, ",[134,568,569],{"class":140},"type",[134,571,572],{"class":144}," NewUser } ",[134,574,148],{"class":140},[134,576,577],{"class":151}," \"./database\"",[134,579,155],{"class":144},[134,581,582],{"class":136,"line":158},[134,583,162],{"emptyLinePlaceholder":161},[134,585,586],{"class":136,"line":165},[134,587,588],{"class":434},"// Insert a new user with type safety\n",[134,590,591,593,596,599,601,603],{"class":136,"line":194},[134,592,440],{"class":140},[134,594,595],{"class":174}," newUser",[134,597,598],{"class":140},":",[134,600,347],{"class":181},[134,602,178],{"class":140},[134,604,605],{"class":144}," {\n",[134,607,608,610,613],{"class":136,"line":223},[134,609,226],{"class":144},[134,611,612],{"class":151},"'John Doe'",[134,614,615],{"class":144},",\n",[134,617,618,620,623],{"class":136,"line":245},[134,619,248],{"class":144},[134,621,622],{"class":151},"'john@example.com'",[134,624,615],{"class":144},[134,626,627,629,632,634],{"class":136,"line":270},[134,628,273],{"class":144},[134,630,631],{"class":140},"new",[134,633,304],{"class":181},[134,635,636],{"class":144},"()\n",[134,638,639],{"class":136,"line":310},[134,640,641],{"class":144},"};\n",[134,643,644],{"class":136,"line":316},[134,645,162],{"emptyLinePlaceholder":161},[134,647,648,650,653,655,658,661,664,667,670,673,676,678,681],{"class":136,"line":321},[134,649,440],{"class":140},[134,651,652],{"class":174}," insertedUser",[134,654,178],{"class":140},[134,656,657],{"class":140}," await",[134,659,660],{"class":144}," db.",[134,662,663],{"class":181},"insert",[134,665,666],{"class":144},"(users).",[134,668,669],{"class":181},"values",[134,671,672],{"class":144},"(newUser).",[134,674,675],{"class":181},"returning",[134,677,262],{"class":144},[134,679,680],{"class":181},"get",[134,682,636],{"class":144},[134,684,685],{"class":136,"line":340},[134,686,162],{"emptyLinePlaceholder":161},[134,688,690],{"class":136,"line":689},12,[134,691,692],{"class":434},"// Query users with full type safety\n",[134,694,696,698,701,703,705,707,710,712,714],{"class":136,"line":695},13,[134,697,440],{"class":140},[134,699,700],{"class":174}," allUsers",[134,702,178],{"class":140},[134,704,657],{"class":140},[134,706,660],{"class":144},[134,708,709],{"class":181},"select",[134,711,262],{"class":144},[134,713,148],{"class":181},[134,715,716],{"class":144},"(users);\n",[134,718,720],{"class":136,"line":719},14,[134,721,162],{"emptyLinePlaceholder":161},[134,723,725],{"class":136,"line":724},15,[134,726,727],{"class":434},"// Query with conditions\n",[134,729,731,733,736,738,740,742,744],{"class":136,"line":730},16,[134,732,440],{"class":140},[134,734,735],{"class":174}," johnDoe",[134,737,178],{"class":140},[134,739,657],{"class":140},[134,741,660],{"class":144},[134,743,709],{"class":181},[134,745,636],{"class":144},[134,747,749,752,754],{"class":136,"line":748},17,[134,750,751],{"class":144},"  .",[134,753,148],{"class":181},[134,755,756],{"class":144},"(users)\n",[134,758,760,762,765,767,770,773,775],{"class":136,"line":759},18,[134,761,751],{"class":144},[134,763,764],{"class":181},"where",[134,766,185],{"class":144},[134,768,769],{"class":181},"eq",[134,771,772],{"class":144},"(users.email, ",[134,774,622],{"class":151},[134,776,777],{"class":144},"));\n",[114,779,781],{"id":780},"configuration","Configuration",[119,783,784,785,788],{},"Create a ",[131,786,787],{},"drizzle.config.ts"," file for migration management:",[123,790,792],{"className":125,"code":791,"filename":787,"language":128,"meta":129,"style":129},"import { defineConfig } from 'drizzle-kit';\n\nexport default defineConfig({\n  schema: './schema.ts',\n  out: './migrations',\n  dialect: 'sqlite',\n  dbCredentials: {\n    url: './database.sqlite'\n  }\n});\n",[131,793,794,808,812,825,835,845,855,860,868,873],{"__ignoreMap":129},[134,795,796,798,801,803,806],{"class":136,"line":137},[134,797,141],{"class":140},[134,799,800],{"class":144}," { defineConfig } ",[134,802,148],{"class":140},[134,804,805],{"class":151}," 'drizzle-kit'",[134,807,155],{"class":144},[134,809,810],{"class":136,"line":158},[134,811,162],{"emptyLinePlaceholder":161},[134,813,814,816,819,822],{"class":136,"line":165},[134,815,168],{"class":140},[134,817,818],{"class":140}," default",[134,820,821],{"class":181}," defineConfig",[134,823,824],{"class":144},"({\n",[134,826,827,830,833],{"class":136,"line":194},[134,828,829],{"class":144},"  schema: ",[134,831,832],{"class":151},"'./schema.ts'",[134,834,615],{"class":144},[134,836,837,840,843],{"class":136,"line":223},[134,838,839],{"class":144},"  out: ",[134,841,842],{"class":151},"'./migrations'",[134,844,615],{"class":144},[134,846,847,850,853],{"class":136,"line":245},[134,848,849],{"class":144},"  dialect: ",[134,851,852],{"class":151},"'sqlite'",[134,854,615],{"class":144},[134,856,857],{"class":136,"line":270},[134,858,859],{"class":144},"  dbCredentials: {\n",[134,861,862,865],{"class":136,"line":310},[134,863,864],{"class":144},"    url: ",[134,866,867],{"class":151},"'./database.sqlite'\n",[134,869,870],{"class":136,"line":316},[134,871,872],{"class":144},"  }\n",[134,874,875],{"class":136,"line":321},[134,876,313],{"class":144},[878,879,880],"style",{},"html pre.shiki code .so5gQ, html code.shiki .so5gQ{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#F97583}html pre.shiki code .slsVL, html code.shiki .slsVL{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8}html pre.shiki code .sfrk1, html code.shiki .sfrk1{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#9ECBFF}html pre.shiki code .suiK_, html code.shiki .suiK_{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}html pre.shiki code .shcOC, html code.shiki .shcOC{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#B392F0}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":129,"searchDepth":158,"depth":158,"links":882},[883,884],{"id":116,"depth":158,"text":117},{"id":780,"depth":158,"text":781},"Integrate DB0 with Drizzle ORM","md",{"icon":93},{"icon":93},{"title":90,"description":885},"FnxLuadYRbK4WcXtuHCwdIH1Y3SIOussQWMAeVNCtHs",[892,894],{"title":83,"path":84,"stem":85,"description":893,"icon":88,"children":-1},"You can integrate DB0 instance to ORM or framework of your choice.",{"title":95,"path":96,"stem":97,"description":895,"icon":98,"children":-1},"Integrate DB0 with Kysely query builder",1780492438305]