@lunarhue/expo-wa-sqlite 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/.claude/settings.local.json +9 -0
  2. package/.lovely-docs.yaml +11 -0
  3. package/LICENSE +21 -0
  4. package/demo/next.config.mjs +17 -0
  5. package/demo/package.json +26 -0
  6. package/demo/scripts/copy-wasm.mjs +14 -0
  7. package/demo/src/app/layout.tsx +16 -0
  8. package/demo/src/app/page.tsx +16 -0
  9. package/demo/src/app/todos.tsx +118 -0
  10. package/demo/src/db/schema.ts +7 -0
  11. package/demo/tsconfig.json +18 -0
  12. package/lovely-docs/drizzle-orm/arktype.md +113 -0
  13. package/lovely-docs/drizzle-orm/batch-api.md +35 -0
  14. package/lovely-docs/drizzle-orm/cache.md +145 -0
  15. package/lovely-docs/drizzle-orm/check-migrations.md +52 -0
  16. package/lovely-docs/drizzle-orm/column_types/mysql-column-types.md +76 -0
  17. package/lovely-docs/drizzle-orm/column_types/postgresql_column_types.md +314 -0
  18. package/lovely-docs/drizzle-orm/column_types/singlestore-column-types.md +171 -0
  19. package/lovely-docs/drizzle-orm/column_types/sqlite_column_types.md +132 -0
  20. package/lovely-docs/drizzle-orm/column_types.md +76 -0
  21. package/lovely-docs/drizzle-orm/common_patterns_&_recipes/case-insensitive-unique-email.md +113 -0
  22. package/lovely-docs/drizzle-orm/common_patterns_&_recipes/conditional-filters-in-query.md +69 -0
  23. package/lovely-docs/drizzle-orm/common_patterns_&_recipes/count-rows.md +76 -0
  24. package/lovely-docs/drizzle-orm/common_patterns_&_recipes/cursor-based-pagination.md +142 -0
  25. package/lovely-docs/drizzle-orm/common_patterns_&_recipes/d1_http_api_configuration.md +49 -0
  26. package/lovely-docs/drizzle-orm/common_patterns_&_recipes/decrementing-a-value.md +36 -0
  27. package/lovely-docs/drizzle-orm/common_patterns_&_recipes/empty-array-default-value.md +43 -0
  28. package/lovely-docs/drizzle-orm/common_patterns_&_recipes/full-text-search-with-generated-columns.md +73 -0
  29. package/lovely-docs/drizzle-orm/common_patterns_&_recipes/gel-auth-extension.md +89 -0
  30. package/lovely-docs/drizzle-orm/common_patterns_&_recipes/include-or-exclude-columns.md +51 -0
  31. package/lovely-docs/drizzle-orm/common_patterns_&_recipes/incrementing-a-value.md +36 -0
  32. package/lovely-docs/drizzle-orm/common_patterns_&_recipes/limit-offset-pagination.md +104 -0
  33. package/lovely-docs/drizzle-orm/common_patterns_&_recipes/mysql-local-setup.md +55 -0
  34. package/lovely-docs/drizzle-orm/common_patterns_&_recipes/point-datatype-psql.md +79 -0
  35. package/lovely-docs/drizzle-orm/common_patterns_&_recipes/postgis-geometry-point.md +115 -0
  36. package/lovely-docs/drizzle-orm/common_patterns_&_recipes/postgresql-full-text-search.md +150 -0
  37. package/lovely-docs/drizzle-orm/common_patterns_&_recipes/postgresql-local-setup.md +55 -0
  38. package/lovely-docs/drizzle-orm/common_patterns_&_recipes/seeding-with-option.md +69 -0
  39. package/lovely-docs/drizzle-orm/common_patterns_&_recipes/seeding-with-partially-exposed-schema.md +60 -0
  40. package/lovely-docs/drizzle-orm/common_patterns_&_recipes/select-parent-rows-with-at-least-one-related-child-row.md +74 -0
  41. package/lovely-docs/drizzle-orm/common_patterns_&_recipes/timestamp-default-value.md +93 -0
  42. package/lovely-docs/drizzle-orm/common_patterns_&_recipes/toggling-a-boolean-field.md +20 -0
  43. package/lovely-docs/drizzle-orm/common_patterns_&_recipes/update-many-with-different-values.md +50 -0
  44. package/lovely-docs/drizzle-orm/common_patterns_&_recipes/upsert.md +169 -0
  45. package/lovely-docs/drizzle-orm/common_patterns_&_recipes/vector-similarity-search.md +79 -0
  46. package/lovely-docs/drizzle-orm/common_patterns_&_recipes.md +787 -0
  47. package/lovely-docs/drizzle-orm/connect-aws-data-api-pg.md +47 -0
  48. package/lovely-docs/drizzle-orm/connect-bun-sql.md +35 -0
  49. package/lovely-docs/drizzle-orm/connect-bun-sqlite.md +42 -0
  50. package/lovely-docs/drizzle-orm/connect-cloudflare-d1.md +61 -0
  51. package/lovely-docs/drizzle-orm/connect-cloudflare-do.md +86 -0
  52. package/lovely-docs/drizzle-orm/connect-neon.md +72 -0
  53. package/lovely-docs/drizzle-orm/connect-nile.md +84 -0
  54. package/lovely-docs/drizzle-orm/connect-pglite.md +39 -0
  55. package/lovely-docs/drizzle-orm/connect-planetscale.md +37 -0
  56. package/lovely-docs/drizzle-orm/connect-prisma-postgres.md +48 -0
  57. package/lovely-docs/drizzle-orm/connect-sqlite-cloud.md +29 -0
  58. package/lovely-docs/drizzle-orm/connect-supabase.md +45 -0
  59. package/lovely-docs/drizzle-orm/connect-tidb-serverless.md +35 -0
  60. package/lovely-docs/drizzle-orm/connect-turso-database.md +28 -0
  61. package/lovely-docs/drizzle-orm/connect-turso.md +60 -0
  62. package/lovely-docs/drizzle-orm/connect-vercel-postgres.md +37 -0
  63. package/lovely-docs/drizzle-orm/connect-xata.md +29 -0
  64. package/lovely-docs/drizzle-orm/custom-migrations.md +40 -0
  65. package/lovely-docs/drizzle-orm/custom-types.md +137 -0
  66. package/lovely-docs/drizzle-orm/database-connection-overview.md +89 -0
  67. package/lovely-docs/drizzle-orm/database_setup_guides/bun-sql-existing.md +59 -0
  68. package/lovely-docs/drizzle-orm/database_setup_guides/bun-sqlite-existing.md +48 -0
  69. package/lovely-docs/drizzle-orm/database_setup_guides/bun-sqlite-new.md +34 -0
  70. package/lovely-docs/drizzle-orm/database_setup_guides/d1-new.md +74 -0
  71. package/lovely-docs/drizzle-orm/database_setup_guides/expo-sqlite-setup.md +169 -0
  72. package/lovely-docs/drizzle-orm/database_setup_guides/gel-existing-project.md +81 -0
  73. package/lovely-docs/drizzle-orm/database_setup_guides/get-started-bun-sql.md +29 -0
  74. package/lovely-docs/drizzle-orm/database_setup_guides/getting_started_with_gel.md +85 -0
  75. package/lovely-docs/drizzle-orm/database_setup_guides/mysql-existing-project.md +32 -0
  76. package/lovely-docs/drizzle-orm/database_setup_guides/mysql-setup.md +43 -0
  77. package/lovely-docs/drizzle-orm/database_setup_guides/neon-existing-project.md +39 -0
  78. package/lovely-docs/drizzle-orm/database_setup_guides/neon-setup.md +45 -0
  79. package/lovely-docs/drizzle-orm/database_setup_guides/nile-existing-project.md +66 -0
  80. package/lovely-docs/drizzle-orm/database_setup_guides/nile-setup.md +59 -0
  81. package/lovely-docs/drizzle-orm/database_setup_guides/op-sqlite_setup_guide.md +135 -0
  82. package/lovely-docs/drizzle-orm/database_setup_guides/pglite-existing-project.md +67 -0
  83. package/lovely-docs/drizzle-orm/database_setup_guides/pglite-setup.md +33 -0
  84. package/lovely-docs/drizzle-orm/database_setup_guides/planetscale-existing-project.md +70 -0
  85. package/lovely-docs/drizzle-orm/database_setup_guides/planetscale-setup.md +46 -0
  86. package/lovely-docs/drizzle-orm/database_setup_guides/postgresql-existing-project.md +57 -0
  87. package/lovely-docs/drizzle-orm/database_setup_guides/postgresql-setup.md +44 -0
  88. package/lovely-docs/drizzle-orm/database_setup_guides/singlestore-existing-project.md +22 -0
  89. package/lovely-docs/drizzle-orm/database_setup_guides/singlestore-setup.md +37 -0
  90. package/lovely-docs/drizzle-orm/database_setup_guides/sqlite-cloud-existing-project.md +52 -0
  91. package/lovely-docs/drizzle-orm/database_setup_guides/sqlite-cloud-setup.md +53 -0
  92. package/lovely-docs/drizzle-orm/database_setup_guides/sqlite-durable-objects-setup.md +163 -0
  93. package/lovely-docs/drizzle-orm/database_setup_guides/sqlite-existing-project.md +36 -0
  94. package/lovely-docs/drizzle-orm/database_setup_guides/sqlite-new.md +28 -0
  95. package/lovely-docs/drizzle-orm/database_setup_guides/supabase-existing-project.md +32 -0
  96. package/lovely-docs/drizzle-orm/database_setup_guides/tidb-existing-project.md +25 -0
  97. package/lovely-docs/drizzle-orm/database_setup_guides/tidb-serverless-setup.md +41 -0
  98. package/lovely-docs/drizzle-orm/database_setup_guides/turso-database-existing.md +61 -0
  99. package/lovely-docs/drizzle-orm/database_setup_guides/turso-database-setup.md +60 -0
  100. package/lovely-docs/drizzle-orm/database_setup_guides/turso-existing.md +74 -0
  101. package/lovely-docs/drizzle-orm/database_setup_guides/turso-new.md +78 -0
  102. package/lovely-docs/drizzle-orm/database_setup_guides/vercel-postgres-existing-project.md +71 -0
  103. package/lovely-docs/drizzle-orm/database_setup_guides/vercel-postgres-setup.md +46 -0
  104. package/lovely-docs/drizzle-orm/database_setup_guides/xata-existing-project.md +32 -0
  105. package/lovely-docs/drizzle-orm/database_setup_guides/xata-new.md +30 -0
  106. package/lovely-docs/drizzle-orm/database_setup_guides.md +144 -0
  107. package/lovely-docs/drizzle-orm/delete.md +57 -0
  108. package/lovely-docs/drizzle-orm/drizzle-config-file.md +252 -0
  109. package/lovely-docs/drizzle-orm/drizzle-kit-up.md +43 -0
  110. package/lovely-docs/drizzle-orm/dynamic-query-building.md +68 -0
  111. package/lovely-docs/drizzle-orm/eslint-plugin.md +76 -0
  112. package/lovely-docs/drizzle-orm/expo-sqlite.md +101 -0
  113. package/lovely-docs/drizzle-orm/export.md +88 -0
  114. package/lovely-docs/drizzle-orm/faq.md +28 -0
  115. package/lovely-docs/drizzle-orm/filter-and-conditional-operators.md +169 -0
  116. package/lovely-docs/drizzle-orm/gel-setup.md +37 -0
  117. package/lovely-docs/drizzle-orm/generate.md +119 -0
  118. package/lovely-docs/drizzle-orm/generated-columns.md +128 -0
  119. package/lovely-docs/drizzle-orm/getting_started/database_integrations/drizzle-with-turso.md +159 -0
  120. package/lovely-docs/drizzle-orm/getting_started/database_integrations/drizzle_with_nile_database.md +195 -0
  121. package/lovely-docs/drizzle-orm/getting_started/database_integrations/neon_postgres_integration.md +157 -0
  122. package/lovely-docs/drizzle-orm/getting_started/database_integrations/supabase_integration.md +150 -0
  123. package/lovely-docs/drizzle-orm/getting_started/database_integrations/vercel-postgres-setup.md +152 -0
  124. package/lovely-docs/drizzle-orm/getting_started/database_integrations/xata_integration.md +143 -0
  125. package/lovely-docs/drizzle-orm/getting_started/database_integrations.md +117 -0
  126. package/lovely-docs/drizzle-orm/getting_started/edge_functions_integration/drizzle_with_vercel_edge_functions.md +220 -0
  127. package/lovely-docs/drizzle-orm/getting_started/edge_functions_integration/netlify_edge_functions_with_neon_postgres.md +120 -0
  128. package/lovely-docs/drizzle-orm/getting_started/edge_functions_integration/netlify_edge_functions_with_supabase.md +94 -0
  129. package/lovely-docs/drizzle-orm/getting_started/edge_functions_integration/supabase_edge_functions_integration.md +116 -0
  130. package/lovely-docs/drizzle-orm/getting_started/edge_functions_integration.md +63 -0
  131. package/lovely-docs/drizzle-orm/getting_started/todo_app_with_neon_postgres.md +323 -0
  132. package/lovely-docs/drizzle-orm/getting_started.md +443 -0
  133. package/lovely-docs/drizzle-orm/graphql.md +107 -0
  134. package/lovely-docs/drizzle-orm/http-proxy-driver.md +138 -0
  135. package/lovely-docs/drizzle-orm/indexes-constraints.md +135 -0
  136. package/lovely-docs/drizzle-orm/insert.mdx.md +118 -0
  137. package/lovely-docs/drizzle-orm/joins.md +145 -0
  138. package/lovely-docs/drizzle-orm/kit-overview.md +81 -0
  139. package/lovely-docs/drizzle-orm/migrate.md +54 -0
  140. package/lovely-docs/drizzle-orm/migration_guides/migrate-from-sequelize.md +335 -0
  141. package/lovely-docs/drizzle-orm/migration_guides/migrate-from-typeorm.md +317 -0
  142. package/lovely-docs/drizzle-orm/migration_guides/migrate_from_prisma_to_drizzle.md +258 -0
  143. package/lovely-docs/drizzle-orm/migration_guides.md +201 -0
  144. package/lovely-docs/drizzle-orm/migrations.md +50 -0
  145. package/lovely-docs/drizzle-orm/mysql-setup.md +51 -0
  146. package/lovely-docs/drizzle-orm/op-sqlite-setup.md +80 -0
  147. package/lovely-docs/drizzle-orm/overview.md +69 -0
  148. package/lovely-docs/drizzle-orm/postgresql-setup.md +71 -0
  149. package/lovely-docs/drizzle-orm/postgresql_extensions.md +93 -0
  150. package/lovely-docs/drizzle-orm/prepared-statements.md +77 -0
  151. package/lovely-docs/drizzle-orm/prisma-extension.md +46 -0
  152. package/lovely-docs/drizzle-orm/pull.md +134 -0
  153. package/lovely-docs/drizzle-orm/push.md +129 -0
  154. package/lovely-docs/drizzle-orm/queries-and-crud.md +72 -0
  155. package/lovely-docs/drizzle-orm/quick-start.md +63 -0
  156. package/lovely-docs/drizzle-orm/react-native-sqlite-setup.md +1 -0
  157. package/lovely-docs/drizzle-orm/read-replicas.md +66 -0
  158. package/lovely-docs/drizzle-orm/relational-queries.md +271 -0
  159. package/lovely-docs/drizzle-orm/relations.md +194 -0
  160. package/lovely-docs/drizzle-orm/release_notes/live-queries.md +27 -0
  161. package/lovely-docs/drizzle-orm/release_notes/pglite_driver_support.md +14 -0
  162. package/lovely-docs/drizzle-orm/release_notes/v0.11.0_release.md +139 -0
  163. package/lovely-docs/drizzle-orm/release_notes/v0.16.2_release_notes.md +86 -0
  164. package/lovely-docs/drizzle-orm/release_notes/v0.23.2_release.md +5 -0
  165. package/lovely-docs/drizzle-orm/release_notes/v0.27.2_-_unique_constraints_support.md +66 -0
  166. package/lovely-docs/drizzle-orm/release_notes/v0.28.0_release_notes.md +80 -0
  167. package/lovely-docs/drizzle-orm/release_notes/v0.28.1_release.md +7 -0
  168. package/lovely-docs/drizzle-orm/release_notes/v0.28.2_release_notes.md +18 -0
  169. package/lovely-docs/drizzle-orm/release_notes/v0.28.3_release_notes.md +48 -0
  170. package/lovely-docs/drizzle-orm/release_notes/v0.28.4_release.md +8 -0
  171. package/lovely-docs/drizzle-orm/release_notes/v0.28.5_release_notes.md +7 -0
  172. package/lovely-docs/drizzle-orm/release_notes/v0.28.6_release_notes.md +54 -0
  173. package/lovely-docs/drizzle-orm/release_notes/v0.29.0_release_notes.md +143 -0
  174. package/lovely-docs/drizzle-orm/release_notes/v0.29.1_release_notes.md +72 -0
  175. package/lovely-docs/drizzle-orm/release_notes/v0.29.2_release_notes.md +95 -0
  176. package/lovely-docs/drizzle-orm/release_notes/v0.29.3_release.md +7 -0
  177. package/lovely-docs/drizzle-orm/release_notes/v0.29.4_release_notes.md +40 -0
  178. package/lovely-docs/drizzle-orm/release_notes/v0.29.5_release_notes.md +69 -0
  179. package/lovely-docs/drizzle-orm/release_notes/v0.30.0_release_notes.md +31 -0
  180. package/lovely-docs/drizzle-orm/release_notes/v0.30.10_release.md +18 -0
  181. package/lovely-docs/drizzle-orm/release_notes/v0.30.1_release_notes.md +16 -0
  182. package/lovely-docs/drizzle-orm/release_notes/v0.30.2_release_notes.md +7 -0
  183. package/lovely-docs/drizzle-orm/release_notes/v0.30.3_release_notes.md +8 -0
  184. package/lovely-docs/drizzle-orm/release_notes/v0.30.5_release_notes.md +20 -0
  185. package/lovely-docs/drizzle-orm/release_notes/v0.30.7_release.md +5 -0
  186. package/lovely-docs/drizzle-orm/release_notes/v0.30.8_release_notes.md +36 -0
  187. package/lovely-docs/drizzle-orm/release_notes/v0.30.9_release.md +29 -0
  188. package/lovely-docs/drizzle-orm/release_notes/v0.31.0_release_notes.md +186 -0
  189. package/lovely-docs/drizzle-orm/release_notes/v0.31.2_tidb_cloud_serverless_support.md +16 -0
  190. package/lovely-docs/drizzle-orm/release_notes/v0.31.3_release.md +19 -0
  191. package/lovely-docs/drizzle-orm/release_notes/v0.31.4_release.md +1 -0
  192. package/lovely-docs/drizzle-orm/release_notes/v0.32.0_release_notes.md +136 -0
  193. package/lovely-docs/drizzle-orm/release_notes/v0.32.1_release_notes.md +15 -0
  194. package/lovely-docs/drizzle-orm/release_notes/v0.32.2_release.md +13 -0
  195. package/lovely-docs/drizzle-orm/release_notes/xata-http-driver-support.md +27 -0
  196. package/lovely-docs/drizzle-orm/release_notes.md +25 -0
  197. package/lovely-docs/drizzle-orm/rls.mdx.md +385 -0
  198. package/lovely-docs/drizzle-orm/schema-declaration.md +239 -0
  199. package/lovely-docs/drizzle-orm/schemas.md +63 -0
  200. package/lovely-docs/drizzle-orm/seed-generators.md +220 -0
  201. package/lovely-docs/drizzle-orm/seed-limitations.md +3 -0
  202. package/lovely-docs/drizzle-orm/seed-overview.md +155 -0
  203. package/lovely-docs/drizzle-orm/seed-versioning.md +85 -0
  204. package/lovely-docs/drizzle-orm/select.md +411 -0
  205. package/lovely-docs/drizzle-orm/sequences.md +62 -0
  206. package/lovely-docs/drizzle-orm/serverless-performance.md +21 -0
  207. package/lovely-docs/drizzle-orm/set-operations.md +127 -0
  208. package/lovely-docs/drizzle-orm/singlestore-setup.md +57 -0
  209. package/lovely-docs/drizzle-orm/sql-template.md +127 -0
  210. package/lovely-docs/drizzle-orm/sqlite-setup.md +65 -0
  211. package/lovely-docs/drizzle-orm/studio.md +47 -0
  212. package/lovely-docs/drizzle-orm/transactions.md +83 -0
  213. package/lovely-docs/drizzle-orm/type-helpers-and-utilities.md +160 -0
  214. package/lovely-docs/drizzle-orm/typebox.md +110 -0
  215. package/lovely-docs/drizzle-orm/update.md +79 -0
  216. package/lovely-docs/drizzle-orm/upgrade-to-0.21.0.md +40 -0
  217. package/lovely-docs/drizzle-orm/valibot.md +115 -0
  218. package/lovely-docs/drizzle-orm/views.md +135 -0
  219. package/lovely-docs/drizzle-orm/why-drizzle.md +66 -0
  220. package/lovely-docs/drizzle-orm/zod.md +113 -0
  221. package/lovely-docs/drizzle-orm.md +60 -0
  222. package/package.json +24 -0
  223. package/src/index.ts +186 -0
  224. package/tsconfig.json +14 -0
@@ -0,0 +1,47 @@
1
+ ## AWS Data API Postgres Connection
2
+
3
+ Connect Drizzle ORM to AWS RDS Aurora PostgreSQL using AWS Data API.
4
+
5
+ **Prerequisites:**
6
+ - Database connection basics with Drizzle
7
+ - AWS Data API (Aurora RDS)
8
+ - AWS SDK v3
9
+
10
+ **Installation:**
11
+ ```
12
+ npm install drizzle-orm @aws-sdk/client-rds-data
13
+ npm install -D drizzle-kit
14
+ ```
15
+
16
+ **Setup - Option 1 (Auto-create client):**
17
+ ```typescript
18
+ import { drizzle } from 'drizzle-orm/aws-data-api/pg';
19
+
20
+ const db = drizzle({
21
+ connection: {
22
+ database: process.env['DATABASE']!,
23
+ secretArn: process.env['SECRET_ARN']!,
24
+ resourceArn: process.env['RESOURCE_ARN']!,
25
+ }
26
+ });
27
+
28
+ await db.select().from(...);
29
+ ```
30
+
31
+ **Setup - Option 2 (Provide existing RDSDataClient):**
32
+ ```typescript
33
+ import { drizzle } from 'drizzle-orm/aws-data-api/pg';
34
+ import { RDSDataClient } from '@aws-sdk/client-rds-data';
35
+
36
+ const rdsClient = new RDSDataClient({ region: 'us-east-1' });
37
+
38
+ const db = drizzle(rdsClient, {
39
+ database: process.env['DATABASE']!,
40
+ secretArn: process.env['SECRET_ARN']!,
41
+ resourceArn: process.env['RESOURCE_ARN']!,
42
+ });
43
+
44
+ await db.select().from(...);
45
+ ```
46
+
47
+ Three required connection properties: `database`, `secretArn`, `resourceArn`. Additional RDSDataClient properties can be specified in the connection object.
@@ -0,0 +1,35 @@
1
+ ## Bun SQL Integration
2
+
3
+ Drizzle ORM natively supports Bun's SQL module for PostgreSQL database connections.
4
+
5
+ **Prerequisites:**
6
+ - Database connection basics with Drizzle
7
+ - Bun runtime (fast all-in-one JavaScript runtime)
8
+ - Bun SQL - native PostgreSQL bindings
9
+
10
+ **Installation:**
11
+ ```
12
+ npm install drizzle-orm
13
+ npm install -D drizzle-kit
14
+ ```
15
+
16
+ **Basic usage - auto-initialize driver:**
17
+ ```typescript
18
+ import 'dotenv/config';
19
+ import { drizzle } from 'drizzle-orm/bun-sql';
20
+
21
+ const db = drizzle(process.env.DATABASE_URL);
22
+ const result = await db.select().from(...);
23
+ ```
24
+
25
+ **With existing driver:**
26
+ ```typescript
27
+ import 'dotenv/config';
28
+ import { drizzle } from 'drizzle-orm/bun-sql';
29
+ import { SQL } from 'bun';
30
+
31
+ const client = new SQL(process.env.DATABASE_URL!);
32
+ const db = drizzle({ client });
33
+ ```
34
+
35
+ Bun SQL integration is noted as "crazy fast".
@@ -0,0 +1,42 @@
1
+ ## Bun SQLite Integration
2
+
3
+ Drizzle ORM natively supports the `bun:sqlite` module with both async and sync APIs.
4
+
5
+ ### Installation
6
+ ```
7
+ npm install drizzle-orm
8
+ npm install -D drizzle-kit
9
+ ```
10
+
11
+ ### Basic Setup
12
+ Initialize with default driver:
13
+ ```typescript
14
+ import { drizzle } from 'drizzle-orm/bun-sqlite';
15
+ const db = drizzle();
16
+ const result = await db.select().from(...);
17
+ ```
18
+
19
+ Or provide an existing Bun SQLite driver:
20
+ ```typescript
21
+ import { drizzle } from 'drizzle-orm/bun-sqlite';
22
+ import { Database } from 'bun:sqlite';
23
+
24
+ const sqlite = new Database('sqlite.db');
25
+ const db = drizzle({ client: sqlite });
26
+ ```
27
+
28
+ ### Async API
29
+ ```typescript
30
+ const result = await db.select().from(users);
31
+ ```
32
+
33
+ ### Sync API
34
+ For synchronous operations, use the following methods:
35
+ ```typescript
36
+ const result = db.select().from(users).all();
37
+ const result = db.select().from(users).get();
38
+ const result = db.select().from(users).values();
39
+ const result = db.select().from(users).run();
40
+ ```
41
+
42
+ The sync API mirrors popular SQLite methods: `all`, `get`, `values`, and `run`.
@@ -0,0 +1,61 @@
1
+ ## Cloudflare D1 Integration
2
+
3
+ D1 is Cloudflare's queryable relational database. Drizzle ORM fully supports D1 and Cloudflare Workers environment with SQLite-like query methods (`all`, `get`, `values`, `run`).
4
+
5
+ ### Installation
6
+ ```
7
+ npm install drizzle-orm
8
+ npm install -D drizzle-kit
9
+ ```
10
+
11
+ ### Configuration
12
+ Create `wrangler.json` or `wrangler.toml` with D1 database binding:
13
+
14
+ **wrangler.json:**
15
+ ```json
16
+ {
17
+ "name": "YOUR_PROJECT_NAME",
18
+ "main": "src/index.ts",
19
+ "compatibility_date": "2024-09-26",
20
+ "compatibility_flags": ["nodejs_compat"],
21
+ "d1_databases": [{
22
+ "binding": "BINDING_NAME",
23
+ "database_name": "YOUR_DB_NAME",
24
+ "database_id": "YOUR_DB_ID",
25
+ "migrations_dir": "drizzle/migrations"
26
+ }]
27
+ }
28
+ ```
29
+
30
+ **wrangler.toml:**
31
+ ```toml
32
+ name = "YOUR_PROJECT_NAME"
33
+ main = "src/index.ts"
34
+ compatibility_date = "2022-11-07"
35
+ node_compat = true
36
+
37
+ [[ d1_databases ]]
38
+ binding = "BINDING_NAME"
39
+ database_name = "YOUR_DB_NAME"
40
+ database_id = "YOUR_DB_ID"
41
+ migrations_dir = "drizzle/migrations"
42
+ ```
43
+
44
+ ### Usage
45
+ ```typescript
46
+ import { drizzle } from 'drizzle-orm/d1';
47
+
48
+ export interface Env {
49
+ <BINDING_NAME>: D1Database;
50
+ }
51
+
52
+ export default {
53
+ async fetch(request: Request, env: Env) {
54
+ const db = drizzle(env.<BINDING_NAME>);
55
+ const result = await db.select().from(users).all();
56
+ return Response.json(result);
57
+ },
58
+ };
59
+ ```
60
+
61
+ Initialize driver with `drizzle(env.<BINDING_NAME>)` and use standard Drizzle query syntax.
@@ -0,0 +1,86 @@
1
+ ## Cloudflare Durable Objects SQLite Setup
2
+
3
+ Drizzle ORM fully supports Cloudflare Durable Objects SQLite databases in Cloudflare Workers environment.
4
+
5
+ ### Prerequisites
6
+ - Database connection basics with Drizzle
7
+ - Cloudflare SQLite Durable Objects - SQLite database embedded within a Durable Object
8
+
9
+ ### Installation
10
+ ```
11
+ npm install drizzle-orm
12
+ npm install -D drizzle-kit
13
+ ```
14
+
15
+ ### Configuration
16
+
17
+ Create `wrangler.toml` with Durable Object bindings and migrations:
18
+ ```toml
19
+ name = "sqlite-durable-objects"
20
+ main = "src/index.ts"
21
+ compatibility_date = "2024-11-12"
22
+ compatibility_flags = [ "nodejs_compat" ]
23
+
24
+ [[durable_objects.bindings]]
25
+ name = "MY_DURABLE_OBJECT"
26
+ class_name = "MyDurableObject"
27
+
28
+ [[migrations]]
29
+ tag = "v1"
30
+ new_sqlite_classes = ["MyDurableObject"]
31
+
32
+ [[rules]]
33
+ type = "Text"
34
+ globs = ["**/*.sql"]
35
+ fallthrough = true
36
+ ```
37
+
38
+ ### Usage
39
+
40
+ Initialize driver and create Durable Object class:
41
+ ```typescript
42
+ import { drizzle, DrizzleSqliteDODatabase } from 'drizzle-orm/durable-sqlite';
43
+ import { DurableObject } from 'cloudflare:workers'
44
+ import { migrate } from 'drizzle-orm/durable-sqlite/migrator';
45
+ import migrations from '../drizzle/migrations';
46
+ import { usersTable } from './db/schema';
47
+
48
+ export class MyDurableObject extends DurableObject {
49
+ storage: DurableObjectStorage;
50
+ db: DrizzleSqliteDODatabase<any>;
51
+
52
+ constructor(ctx: DurableObjectState, env: Env) {
53
+ super(ctx, env);
54
+ this.storage = ctx.storage;
55
+ this.db = drizzle(this.storage, { logger: false });
56
+
57
+ ctx.blockConcurrencyWhile(async () => {
58
+ await migrate(this.db, migrations);
59
+ });
60
+ }
61
+
62
+ async insertAndList(user: typeof usersTable.$inferInsert) {
63
+ await this.db.insert(usersTable).values(user);
64
+ return this.db.select().from(usersTable);
65
+ }
66
+ }
67
+
68
+ export default {
69
+ async fetch(request: Request, env: Env): Promise<Response> {
70
+ const id = env.MY_DURABLE_OBJECT.idFromName('durable-object');
71
+ const stub = env.MY_DURABLE_OBJECT.get(id);
72
+
73
+ const users = await stub.insertAndList({
74
+ name: 'John',
75
+ age: 30,
76
+ email: 'john@example.com',
77
+ });
78
+ return Response.json(users);
79
+ }
80
+ }
81
+ ```
82
+
83
+ ### Performance Notes
84
+ - Bundle all database interactions within a single Durable Object call for maximum performance
85
+ - Each individual query call is a round-trip to the Durable Object instance
86
+ - Run migrations during initialization with `blockConcurrencyWhile()` to prevent concurrent access before migrations complete
@@ -0,0 +1,72 @@
1
+ ## Neon Postgres Connection
2
+
3
+ Drizzle has native support for Neon serverless database connections using `neon-http` and `neon-websockets` drivers, which wrap the neon-serverless driver. HTTP is faster for single non-interactive transactions; WebSockets support session and interactive transactions.
4
+
5
+ ### Installation
6
+ ```
7
+ drizzle-orm @neondatabase/serverless
8
+ -D drizzle-kit
9
+ ```
10
+
11
+ ### Neon HTTP
12
+ ```typescript
13
+ import { drizzle } from 'drizzle-orm/neon-http';
14
+ const db = drizzle(process.env.DATABASE_URL);
15
+ const result = await db.execute('select 1');
16
+ ```
17
+
18
+ Or with existing driver:
19
+ ```typescript
20
+ import { neon } from '@neondatabase/serverless';
21
+ import { drizzle } from 'drizzle-orm/neon-http';
22
+ const sql = neon(process.env.DATABASE_URL!);
23
+ const db = drizzle({ client: sql });
24
+ ```
25
+
26
+ ### Neon WebSockets
27
+ ```typescript
28
+ import { drizzle } from 'drizzle-orm/neon-serverless';
29
+ const db = drizzle(process.env.DATABASE_URL);
30
+ ```
31
+
32
+ For Node.js (requires `ws` and `bufferutil` packages):
33
+ ```typescript
34
+ import { drizzle } from 'drizzle-orm/neon-serverless';
35
+ import ws from 'ws';
36
+ const db = drizzle({ connection: process.env.DATABASE_URL, ws: ws });
37
+ ```
38
+
39
+ Or with existing Pool:
40
+ ```typescript
41
+ import { Pool } from '@neondatabase/serverless';
42
+ import { drizzle } from 'drizzle-orm/neon-serverless';
43
+ const pool = new Pool({ connectionString: process.env.DATABASE_URL });
44
+ const db = drizzle({ client: pool });
45
+ ```
46
+
47
+ For Node.js with Pool:
48
+ ```typescript
49
+ import { Pool, neonConfig } from '@neondatabase/serverless';
50
+ import ws from 'ws';
51
+ neonConfig.webSocketConstructor = ws;
52
+ const pool = new Pool({ connectionString: process.env.DATABASE_URL });
53
+ const db = drizzle({ client: pool });
54
+ ```
55
+
56
+ ### node-postgres
57
+ ```typescript
58
+ import { drizzle } from 'drizzle-orm/node-postgres';
59
+ import { Pool } from 'pg';
60
+ const pool = new Pool({ connectionString: process.env.DATABASE_URL });
61
+ const db = drizzle({ client: pool });
62
+ ```
63
+
64
+ ### postgres.js
65
+ ```typescript
66
+ import { drizzle } from 'drizzle-orm/postgres-js';
67
+ import postgres from 'postgres';
68
+ const queryClient = postgres(process.env.DATABASE_URL);
69
+ const db = drizzle({ client: queryClient });
70
+ ```
71
+
72
+ For serverful Node.js environments, use PostgresJS driver as described in Neon's official Node.js docs. For Cloudflare Workers example, see Drizzle's Neon Cloudflare Worker example.
@@ -0,0 +1,84 @@
1
+ ## Nile Integration
2
+
3
+ Nile is PostgreSQL re-engineered for multi-tenant apps. Use any Drizzle PostgreSQL driver (e.g., node-postgres).
4
+
5
+ ### Installation
6
+ ```
7
+ npm install drizzle-orm postgres
8
+ npm install -D drizzle-kit
9
+ ```
10
+
11
+ ### Basic Setup
12
+ ```typescript
13
+ import { drizzle } from 'drizzle-orm/node-postgres'
14
+ const db = drizzle(process.env.NILEDB_URL);
15
+ const response = await db.select().from(...);
16
+ ```
17
+
18
+ Or with existing driver:
19
+ ```typescript
20
+ import { drizzle } from "drizzle-orm/node-postgres";
21
+ import { Pool } from "pg";
22
+ const pool = new Pool({ connectionString: process.env.DATABASE_URL });
23
+ const db = drizzle({ client: pool });
24
+ ```
25
+
26
+ ### Virtual Tenant Databases
27
+
28
+ Nile provides virtual tenant databases. Set tenant context via transaction to isolate queries to that tenant:
29
+
30
+ ```typescript
31
+ import { drizzle } from 'drizzle-orm/node-postgres';
32
+ import { sql } from 'drizzle-orm';
33
+
34
+ const db = drizzle(process.env.NILEDB_URL);
35
+
36
+ function tenantDB<T>(tenantId: string, cb: (tx: any) => T | Promise<T>): Promise<T> {
37
+ return db.transaction(async (tx) => {
38
+ if (tenantId) {
39
+ await tx.execute(sql`set local nile.tenant_id = '${sql.raw(tenantId)}'`);
40
+ }
41
+ return cb(tx);
42
+ }) as Promise<T>;
43
+ }
44
+
45
+ const tenantId = '01943e56-16df-754f-a7b6-6234c368b400'
46
+ const response = await tenantDB(tenantId, async (tx) => {
47
+ return await tx.select().from(todosTable);
48
+ });
49
+ ```
50
+
51
+ ### AsyncLocalStorage Pattern
52
+
53
+ For web frameworks supporting AsyncLocalStorage, populate tenant ID via middleware:
54
+
55
+ ```typescript
56
+ import { AsyncLocalStorage } from "async_hooks";
57
+
58
+ export const tenantContext = new AsyncLocalStorage<string | undefined>();
59
+
60
+ export function tenantDB<T>(cb: (tx: any) => T | Promise<T>): Promise<T> {
61
+ return db.transaction(async (tx) => {
62
+ const tenantId = tenantContext.getStore();
63
+ if (tenantId) {
64
+ await tx.execute(sql`set local nile.tenant_id = '${sql.raw(tenantId)}'`);
65
+ }
66
+ return cb(tx);
67
+ }) as Promise<T>;
68
+ }
69
+ ```
70
+
71
+ Middleware setup:
72
+ ```typescript
73
+ app.use("/api/tenants/:tenantId/*", async (c, next) => {
74
+ const tenantId = c.req.param("tenantId");
75
+ return tenantContext.run(tenantId, () => next());
76
+ });
77
+
78
+ app.get("/api/tenants/:tenantId/todos", async (c) => {
79
+ const todos = await tenantDB(async (tx) => {
80
+ return await tx.select({...}).from(todoSchema);
81
+ });
82
+ return c.json(todos);
83
+ });
84
+ ```
@@ -0,0 +1,39 @@
1
+ ## PGlite Integration
2
+
3
+ PGlite is a WASM Postgres build packaged as a TypeScript client library that runs Postgres in the browser, Node.js, and Bun without external dependencies. It's 2.6mb gzipped and uses native WASM instead of a Linux VM. Supports ephemeral in-memory databases or persistence to the file system (Node/Bun) or indexedDB (Browser).
4
+
5
+ ### Installation
6
+
7
+ ```
8
+ npm install drizzle-orm @electric-sql/pglite
9
+ npm install -D drizzle-kit
10
+ ```
11
+
12
+ ### Usage
13
+
14
+ In-memory database:
15
+ ```typescript
16
+ import { drizzle } from 'drizzle-orm/pglite';
17
+ const db = drizzle();
18
+ await db.select().from(...);
19
+ ```
20
+
21
+ With file system persistence:
22
+ ```typescript
23
+ const db = drizzle('path-to-dir');
24
+ ```
25
+
26
+ With advanced configuration:
27
+ ```typescript
28
+ const db = drizzle({ connection: { dataDir: 'path-to-dir' }});
29
+ ```
30
+
31
+ Using an existing PGlite client:
32
+ ```typescript
33
+ import { PGlite } from '@electric-sql/pglite';
34
+ import { drizzle } from 'drizzle-orm/pglite';
35
+
36
+ const client = new PGlite();
37
+ const db = drizzle({ client });
38
+ await db.select().from(users);
39
+ ```
@@ -0,0 +1,37 @@
1
+ ## PlanetScale Integration
2
+
3
+ PlanetScale is a serverless MySQL platform. Drizzle ORM provides HTTP access to PlanetScale via the `drizzle-orm/planetscale-serverless` package (using PlanetScale's `database-js` driver), suitable for both serverless and traditional environments. TCP access via `mysql2` driver is also available.
4
+
5
+ ### Installation
6
+ ```
7
+ npm install drizzle-orm @planetscale/database
8
+ npm install -D drizzle-kit
9
+ ```
10
+
11
+ ### Basic Usage
12
+ Initialize with connection credentials:
13
+ ```typescript
14
+ import { drizzle } from "drizzle-orm/planetscale-serverless";
15
+
16
+ const db = drizzle({ connection: {
17
+ host: process.env["DATABASE_HOST"],
18
+ username: process.env["DATABASE_USERNAME"],
19
+ password: process.env["DATABASE_PASSWORD"],
20
+ }});
21
+
22
+ const response = await db.select().from(...)
23
+ ```
24
+
25
+ Or provide an existing PlanetScale client:
26
+ ```typescript
27
+ import { drizzle } from "drizzle-orm/planetscale-serverless";
28
+ import { Client } from "@planetscale/database";
29
+
30
+ const client = new Client({
31
+ host: process.env["DATABASE_HOST"],
32
+ username: process.env["DATABASE_USERNAME"],
33
+ password: process.env["DATABASE_PASSWORD"],
34
+ });
35
+
36
+ const db = drizzle({ client });
37
+ ```
@@ -0,0 +1,48 @@
1
+ ## Connecting to Prisma Postgres
2
+
3
+ Prisma Postgres is a serverless PostgreSQL database built on unikernels with a large free tier, operation-based pricing, and no cold starts.
4
+
5
+ ### Installation
6
+
7
+ Choose between two PostgreSQL drivers:
8
+
9
+ **node-postgres (pg):**
10
+ ```bash
11
+ npm install drizzle-orm pg
12
+ npm install -D drizzle-kit
13
+ ```
14
+
15
+ **postgres.js:**
16
+ ```bash
17
+ npm install drizzle-orm postgres
18
+ npm install -D drizzle-kit
19
+ ```
20
+
21
+ ### Setup and Query
22
+
23
+ **Using node-postgres:**
24
+ ```typescript
25
+ import { drizzle } from "drizzle-orm/node-postgres";
26
+ import { Pool } from "pg";
27
+
28
+ const pool = new Pool({
29
+ connectionString: process.env.DATABASE_URL,
30
+ });
31
+ const db = drizzle({ client: pool });
32
+ const result = await db.execute('select 1');
33
+ ```
34
+
35
+ **Using postgres.js:**
36
+ ```typescript
37
+ import { drizzle } from 'drizzle-orm/postgres-js';
38
+ import postgres from 'postgres';
39
+
40
+ const queryClient = postgres(process.env.DATABASE_URL);
41
+ const db = drizzle({ client: queryClient });
42
+ const result = await db.execute('select 1');
43
+ ```
44
+
45
+ ### Notes
46
+
47
+ - Prisma Postgres also offers a serverless driver that will be supported in Drizzle ORM in the future
48
+ - Prerequisites: familiarity with database connection basics, Prisma Postgres account, and PostgreSQL drivers documentation
@@ -0,0 +1,29 @@
1
+ ## SQLite Cloud Integration
2
+
3
+ SQLite Cloud is a managed, distributed relational database system built on SQLite.
4
+
5
+ ### Installation
6
+ ```
7
+ drizzle-orm@beta @sqlitecloud/drivers
8
+ -D drizzle-kit@beta
9
+ ```
10
+
11
+ ### Basic Usage
12
+ Initialize with connection string:
13
+ ```typescript
14
+ import { drizzle } from 'drizzle-orm/sqlite-cloud';
15
+ const db = drizzle(process.env.SQLITE_CLOUD_CONNECTION_STRING);
16
+ const result = await db.execute('select 1');
17
+ ```
18
+
19
+ Or provide your own driver instance:
20
+ ```typescript
21
+ import { Database } from '@sqlitecloud/drivers';
22
+ import { drizzle } from 'drizzle-orm/sqlite-cloud';
23
+
24
+ const client = new Database(process.env.SQLITE_CLOUD_CONNECTION_STRING!);
25
+ const db = drizzle({ client });
26
+ const result = await db.execute('select 1');
27
+ ```
28
+
29
+ Two initialization patterns: pass connection string directly to `drizzle()`, or instantiate `Database` client first and pass it via `{ client }` option.
@@ -0,0 +1,45 @@
1
+ ## Supabase Integration
2
+
3
+ Supabase is an open source Firebase alternative for building secure and performant Postgres backends with minimal configuration.
4
+
5
+ ### Installation
6
+
7
+ ```
8
+ npm install drizzle-orm postgres
9
+ npm install -D drizzle-kit
10
+ ```
11
+
12
+ ### Basic Setup
13
+
14
+ ```typescript
15
+ import { drizzle } from 'drizzle-orm/postgres-js'
16
+
17
+ const db = drizzle(process.env.DATABASE_URL);
18
+ const allUsers = await db.select().from(...);
19
+ ```
20
+
21
+ ### With Existing Driver
22
+
23
+ ```typescript
24
+ import { drizzle } from 'drizzle-orm/postgres-js'
25
+ import postgres from 'postgres'
26
+
27
+ const client = postgres(process.env.DATABASE_URL)
28
+ const db = drizzle({ client });
29
+ const allUsers = await db.select().from(...);
30
+ ```
31
+
32
+ ### Connection Pooling Configuration
33
+
34
+ When using Supabase's connection pooler in "Transaction" pool mode, disable prepared statements:
35
+
36
+ ```typescript
37
+ import { drizzle } from 'drizzle-orm/postgres-js'
38
+ import postgres from 'postgres'
39
+
40
+ const client = postgres(process.env.DATABASE_URL, { prepare: false })
41
+ const db = drizzle({ client });
42
+ const allUsers = await db.select().from(...);
43
+ ```
44
+
45
+ Use the Connection Pooler for serverless environments and Direct Connection for long-running servers.
@@ -0,0 +1,35 @@
1
+ ## TiDB Serverless Integration
2
+
3
+ TiDB Serverless is a fully-managed, autonomous DBaaS with split-second cluster provisioning and consumption-based pricing. It's compatible with MySQL and provides an HTTP driver for edge environments, natively supported by Drizzle ORM.
4
+
5
+ ### Installation
6
+
7
+ ```
8
+ npm install drizzle-orm @tidbcloud/serverless
9
+ npm install -D drizzle-kit
10
+ ```
11
+
12
+ ### Basic Setup
13
+
14
+ Initialize with connection URL:
15
+ ```typescript
16
+ import { drizzle } from 'drizzle-orm/tidb-serverless';
17
+
18
+ const db = drizzle({ connection: { url: process.env.TIDB_URL }});
19
+ const response = await db.select().from(...);
20
+ ```
21
+
22
+ Or provide your own driver instance:
23
+ ```typescript
24
+ import { connect } from '@tidbcloud/serverless';
25
+ import { drizzle } from 'drizzle-orm/tidb-serverless';
26
+
27
+ const client = connect({ url: process.env.TIDB_URL });
28
+ const db = drizzle({ client });
29
+ ```
30
+
31
+ ### Prerequisites
32
+ - Database connection basics with Drizzle
33
+ - TiDB database account
34
+ - TiDB HTTP Driver
35
+ - Drizzle MySQL drivers knowledge
@@ -0,0 +1,28 @@
1
+ ## Turso Database Integration
2
+
3
+ Turso is a small database designed for the AI age. To connect Drizzle ORM to Turso:
4
+
5
+ **Installation:**
6
+ ```
7
+ npm install drizzle-orm@beta @tursodatabase/database
8
+ npm install -D drizzle-kit@beta
9
+ ```
10
+
11
+ **Basic usage - direct connection:**
12
+ ```typescript
13
+ import { drizzle } from 'drizzle-orm/tursodatabase/database';
14
+ const db = drizzle('sqlite.db');
15
+ const result = await db.execute('select 1');
16
+ ```
17
+
18
+ **Using existing driver instance:**
19
+ ```typescript
20
+ import { Database } from '@tursodatabase/drivers';
21
+ import { drizzle } from 'drizzle-orm/tursodatabase/database';
22
+
23
+ const client = new Database('sqlite.db');
24
+ const db = drizzle({ client });
25
+ const result = await db.execute('select 1');
26
+ ```
27
+
28
+ Prerequisites: familiarity with database connection basics in Drizzle, and knowledge of Turso Database and its JavaScript driver.