[{"data":1,"prerenderedAt":632},["ShallowReactive",2],{"navigation_docs_en":3,"-en-tauri-sqlite-orm-installation-and-setup":237,"-en-tauri-sqlite-orm-installation-and-setup-surround":627},[4,15,69,122],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":14},"Getting Started with Docs","i-lucide-home","/en/getting-started","en/1.getting-started",[10],{"title":11,"path":12,"stem":13,"icon":6},"Introduction","/en/getting-started/introduction","en/1.getting-started/1.introduction",false,{"title":16,"path":17,"stem":18,"children":19,"page":14},"owo-ui Components","/en/owo-ui-components","en/2.owo-ui-components",[20,23],{"title":11,"path":21,"stem":22,"icon":6},"/en/owo-ui-components/introduction","en/2.owo-ui-components/2.introduction",{"title":24,"icon":25,"path":26,"stem":27,"children":28,"page":14},"Components","i-lucide-layout","/en/owo-ui-components/components","en/2.owo-ui-components/3.components",[29,33,37,41,45,49,53,57,61,65],{"title":30,"path":31,"stem":32},"Button","/en/owo-ui-components/components/button","en/2.owo-ui-components/3.components/button",{"title":34,"path":35,"stem":36},"Checkbox","/en/owo-ui-components/components/checkbox","en/2.owo-ui-components/3.components/checkbox",{"title":38,"path":39,"stem":40},"Collapsible Container","/en/owo-ui-components/components/collapsible-container","en/2.owo-ui-components/3.components/collapsible-container",{"title":42,"path":43,"stem":44},"Dropdown","/en/owo-ui-components/components/dropdown","en/2.owo-ui-components/3.components/dropdown",{"title":46,"path":47,"stem":48},"Flow Layout","/en/owo-ui-components/components/flow-layout","en/2.owo-ui-components/3.components/flow-layout",{"title":50,"path":51,"stem":52},"Grid Layout","/en/owo-ui-components/components/grid-layout","en/2.owo-ui-components/3.components/grid-layout",{"title":54,"path":55,"stem":56},"Label","/en/owo-ui-components/components/label","en/2.owo-ui-components/3.components/label",{"title":58,"path":59,"stem":60},"Scroll Container","/en/owo-ui-components/components/scroll-container","en/2.owo-ui-components/3.components/scroll-container",{"title":62,"path":63,"stem":64},"Slider","/en/owo-ui-components/components/slider","en/2.owo-ui-components/3.components/slider",{"title":66,"path":67,"stem":68},"Templates","/en/owo-ui-components/components/templates","en/2.owo-ui-components/3.components/templates",{"title":70,"path":71,"stem":72,"children":73,"page":14},"Nexus","/en/nexus","en/3.nexus",[74,77,82],{"title":11,"path":75,"stem":76,"icon":6},"/en/nexus/introduction","en/3.nexus/2.introduction",{"title":78,"path":79,"stem":80,"icon":81},"Deployment","/en/nexus/deployment","en/3.nexus/3.deployment","i-lucide-rocket",{"title":83,"path":84,"stem":85,"children":86,"page":14},"Endpoints","/en/nexus/endpoints","en/3.nexus/endpoints",[87,91,95,99,102,106,110,114,118],{"title":88,"path":89,"stem":90},"Authentication","/en/nexus/endpoints/authentication","en/3.nexus/endpoints/1.authentication",{"title":92,"path":93,"stem":94},"Rate Limiting","/en/nexus/endpoints/rate-limiting","en/3.nexus/endpoints/2.rate-limiting",{"title":96,"path":97,"stem":98},"Error Handling","/en/nexus/endpoints/error-handling","en/3.nexus/endpoints/3.error-handling",{"title":83,"path":100,"stem":101},"/en/nexus/endpoints/_dir","en/3.nexus/endpoints/_dir",{"title":103,"path":104,"stem":105},"Album","/en/nexus/endpoints/albums","en/3.nexus/endpoints/albums",{"title":107,"path":108,"stem":109},"Blog","/en/nexus/endpoints/blog","en/3.nexus/endpoints/blog",{"title":111,"path":112,"stem":113},"Comments","/en/nexus/endpoints/comments","en/3.nexus/endpoints/comments",{"title":115,"path":116,"stem":117},"File Management","/en/nexus/endpoints/file-management","en/3.nexus/endpoints/file-management",{"title":119,"path":120,"stem":121},"Photo Management","/en/nexus/endpoints/photos","en/3.nexus/endpoints/photos",{"title":123,"icon":124,"path":125,"stem":126,"children":127,"page":14},"Tauri SQLite ORM","i-lucide-database","/en/tauri-sqlite-orm","en/4.tauri-sqlite-orm",[128,132,137,141,162,187,232],{"title":11,"path":129,"stem":130,"icon":131},"/en/tauri-sqlite-orm/introduction","en/4.tauri-sqlite-orm/1.introduction","i-lucide-book-open",{"title":133,"path":134,"stem":135,"icon":136},"Installation & Setup","/en/tauri-sqlite-orm/installation-and-setup","en/4.tauri-sqlite-orm/2.installation-and-setup","i-lucide-download",{"title":138,"path":139,"stem":140,"icon":81},"Your First Schema & Query","/en/tauri-sqlite-orm/your-first-schema-and-query","en/4.tauri-sqlite-orm/3.your-first-schema-and-query",{"title":142,"path":143,"stem":144,"children":145,"page":14},"Core Concepts","/en/tauri-sqlite-orm/core-concepts","en/4.tauri-sqlite-orm/4.core-concepts",[146,150,154,158],{"title":147,"path":148,"stem":149},"Defining Schemas","/en/tauri-sqlite-orm/core-concepts/defining-schemas","en/4.tauri-sqlite-orm/4.core-concepts/1.defining-schemas",{"title":151,"path":152,"stem":153},"Column Types & Modifiers","/en/tauri-sqlite-orm/core-concepts/column-types-and-modifiers","en/4.tauri-sqlite-orm/4.core-concepts/2.column-types-and-modifiers",{"title":155,"path":156,"stem":157},"The ORM Instance","/en/tauri-sqlite-orm/core-concepts/the-orm-instance","en/4.tauri-sqlite-orm/4.core-concepts/3.the-orm-instance",{"title":159,"path":160,"stem":161},"Migrations","/en/tauri-sqlite-orm/core-concepts/migrations","en/4.tauri-sqlite-orm/4.core-concepts/4.migrations",{"title":163,"path":164,"stem":165,"children":166,"page":14},"Querying Data","/en/tauri-sqlite-orm/querying-data","en/4.tauri-sqlite-orm/5.querying-data",[167,171,175,179,183],{"title":168,"path":169,"stem":170},"Select","/en/tauri-sqlite-orm/querying-data/selecting-data","en/4.tauri-sqlite-orm/5.querying-data/1.selecting-data",{"title":172,"path":173,"stem":174},"Insert","/en/tauri-sqlite-orm/querying-data/inserting-data","en/4.tauri-sqlite-orm/5.querying-data/2.inserting-data",{"title":176,"path":177,"stem":178},"Update","/en/tauri-sqlite-orm/querying-data/updating-data","en/4.tauri-sqlite-orm/5.querying-data/3.updating-data",{"title":180,"path":181,"stem":182},"Delete","/en/tauri-sqlite-orm/querying-data/deleting-data","en/4.tauri-sqlite-orm/5.querying-data/4.deleting-data",{"title":184,"path":185,"stem":186},"Conditions & Operators","/en/tauri-sqlite-orm/querying-data/conditions-and-operators","en/4.tauri-sqlite-orm/5.querying-data/5.conditions-and-operators",{"title":188,"path":189,"stem":190,"children":191,"page":14},"Advanced Topics","/en/tauri-sqlite-orm/advanced-topics","en/4.tauri-sqlite-orm/6.advanced-topics",[192,196,200,204,208,212,216,220,224,228],{"title":193,"path":194,"stem":195},"Relations","/en/tauri-sqlite-orm/advanced-topics/working-with-relations","en/4.tauri-sqlite-orm/6.advanced-topics/1.working-with-relations",{"title":197,"path":198,"stem":199},"Error Handling & Safety","/en/tauri-sqlite-orm/advanced-topics/error-handling-and-safety","en/4.tauri-sqlite-orm/6.advanced-topics/10.error-handling-and-safety",{"title":201,"path":202,"stem":203},"Joins","/en/tauri-sqlite-orm/advanced-topics/joins","en/4.tauri-sqlite-orm/6.advanced-topics/2.joins",{"title":205,"path":206,"stem":207},"Transactions","/en/tauri-sqlite-orm/advanced-topics/transactions","en/4.tauri-sqlite-orm/6.advanced-topics/3.transactions",{"title":209,"path":210,"stem":211},"Common Table Expressions","/en/tauri-sqlite-orm/advanced-topics/common-table-expressions","en/4.tauri-sqlite-orm/6.advanced-topics/4.common-table-expressions",{"title":213,"path":214,"stem":215},"Raw SQL","/en/tauri-sqlite-orm/advanced-topics/raw-sql","en/4.tauri-sqlite-orm/6.advanced-topics/5.raw-sql",{"title":217,"path":218,"stem":219},"Type Safety & Inference","/en/tauri-sqlite-orm/advanced-topics/type-safety-and-inference","en/4.tauri-sqlite-orm/6.advanced-topics/6.type-safety-and-inference",{"title":221,"path":222,"stem":223},"Schema Management","/en/tauri-sqlite-orm/advanced-topics/manual-schema-management","en/4.tauri-sqlite-orm/6.advanced-topics/7.manual-schema-management",{"title":225,"path":226,"stem":227},"Query Debugging","/en/tauri-sqlite-orm/advanced-topics/query-debugging","en/4.tauri-sqlite-orm/6.advanced-topics/8.query-debugging",{"title":229,"path":230,"stem":231},"Subqueries & Aggregates","/en/tauri-sqlite-orm/advanced-topics/subqueries-and-aggregates","en/4.tauri-sqlite-orm/6.advanced-topics/9.subqueries-and-aggregates",{"title":233,"path":234,"stem":235,"icon":236},"API Reference","/en/tauri-sqlite-orm/api-reference","en/4.tauri-sqlite-orm/7.api-reference","i-lucide-book",{"id":238,"title":133,"body":239,"description":249,"extension":621,"links":622,"meta":623,"navigation":624,"path":134,"seo":625,"stem":135,"__hash__":626},"docs_en/en/4.tauri-sqlite-orm/2.installation-and-setup.md",{"type":240,"value":241,"toc":617},"minimark",[242,246,250,255,263,343,347,350,357,571,606,613],[243,244,133],"h1",{"id":245},"installation-setup",[247,248,249],"p",{},"Follow these steps to integrate the ORM into your Tauri project.",[251,252,254],"h2",{"id":253},"_1-install-packages","1. Install Packages",[247,256,257,258,262],{},"This library requires ",[259,260,261],"code",{},"@tauri-apps/plugin-sql",". You can install both using your preferred package manager.",[264,265,266,294,310,327],"code-group",{},[267,268,274],"pre",{"className":269,"code":270,"filename":271,"language":272,"meta":273,"style":273},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","bun add @type32/tauri-sqlite-orm @tauri-apps/plugin-sql\n","bun","bash","",[259,275,276],{"__ignoreMap":273},[277,278,281,284,288,291],"span",{"class":279,"line":280},"line",1,[277,282,271],{"class":283},"sBMFI",[277,285,287],{"class":286},"sfazB"," add",[277,289,290],{"class":286}," @type32/tauri-sqlite-orm",[277,292,293],{"class":286}," @tauri-apps/plugin-sql\n",[267,295,298],{"className":269,"code":296,"filename":297,"language":272,"meta":273,"style":273},"pnpm add @type32/tauri-sqlite-orm @tauri-apps/plugin-sql\n","pnpm",[259,299,300],{"__ignoreMap":273},[277,301,302,304,306,308],{"class":279,"line":280},[277,303,297],{"class":283},[277,305,287],{"class":286},[277,307,290],{"class":286},[277,309,293],{"class":286},[267,311,314],{"className":269,"code":312,"filename":313,"language":272,"meta":273,"style":273},"npm install @type32/tauri-sqlite-orm @tauri-apps/plugin-sql\n","npm",[259,315,316],{"__ignoreMap":273},[277,317,318,320,323,325],{"class":279,"line":280},[277,319,313],{"class":283},[277,321,322],{"class":286}," install",[277,324,290],{"class":286},[277,326,293],{"class":286},[267,328,331],{"className":269,"code":329,"filename":330,"language":272,"meta":273,"style":273},"yarn add @type32/tauri-sqlite-orm @tauri-apps/plugin-sql\n","yarn",[259,332,333],{"__ignoreMap":273},[277,334,335,337,339,341],{"class":279,"line":280},[277,336,330],{"class":283},[277,338,287],{"class":286},[277,340,290],{"class":286},[277,342,293],{"class":286},[251,344,346],{"id":345},"_2-initialize-the-orm","2. Initialize the ORM",[247,348,349],{},"Create an instance of the ORM in your frontend TypeScript code. It's best practice to do this in a dedicated file and export a singleton instance.",[247,351,352,353,356],{},"Create a file, for example ",[259,354,355],{},"src/lib/db/index.ts",":",[267,358,362],{"className":359,"code":360,"filename":355,"language":361,"meta":273,"style":273},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import Database from '@tauri-apps/plugin-sql'\nimport { TauriORM, asTauriDatabase } from '@type32/tauri-sqlite-orm'\n\n// This is where you will define your tables and relations.\n// We'll create this file in the next guide.\nimport * as schema from './schema'\n\n// This will load or create a database file `main.db` in your\n// app's sandboxed data directory.\nconst dbInstance = await Database.load('sqlite:main.db')\n\n// Initialize the ORM with the database instance and schema.\n// Passing the schema object enables automatic migrations and relation queries.\n// Use asTauriDatabase() if TypeScript reports type incompatibility.\nexport const db = new TauriORM(asTauriDatabase(dbInstance), schema)\n","ts",[259,363,364,386,416,423,430,436,459,464,470,476,516,521,527,533,539],{"__ignoreMap":273},[277,365,366,370,374,377,381,383],{"class":279,"line":280},[277,367,369],{"class":368},"s7zQu","import",[277,371,373],{"class":372},"sTEyZ"," Database ",[277,375,376],{"class":368},"from",[277,378,380],{"class":379},"sMK4o"," '",[277,382,261],{"class":286},[277,384,385],{"class":379},"'\n",[277,387,389,391,394,397,400,403,406,409,411,414],{"class":279,"line":388},2,[277,390,369],{"class":368},[277,392,393],{"class":379}," {",[277,395,396],{"class":372}," TauriORM",[277,398,399],{"class":379},",",[277,401,402],{"class":372}," asTauriDatabase",[277,404,405],{"class":379}," }",[277,407,408],{"class":368}," from",[277,410,380],{"class":379},[277,412,413],{"class":286},"@type32/tauri-sqlite-orm",[277,415,385],{"class":379},[277,417,419],{"class":279,"line":418},3,[277,420,422],{"emptyLinePlaceholder":421},true,"\n",[277,424,426],{"class":279,"line":425},4,[277,427,429],{"class":428},"sHwdD","// This is where you will define your tables and relations.\n",[277,431,433],{"class":279,"line":432},5,[277,434,435],{"class":428},"// We'll create this file in the next guide.\n",[277,437,439,441,444,447,450,452,454,457],{"class":279,"line":438},6,[277,440,369],{"class":368},[277,442,443],{"class":379}," *",[277,445,446],{"class":368}," as",[277,448,449],{"class":372}," schema ",[277,451,376],{"class":368},[277,453,380],{"class":379},[277,455,456],{"class":286},"./schema",[277,458,385],{"class":379},[277,460,462],{"class":279,"line":461},7,[277,463,422],{"emptyLinePlaceholder":421},[277,465,467],{"class":279,"line":466},8,[277,468,469],{"class":428},"// This will load or create a database file `main.db` in your\n",[277,471,473],{"class":279,"line":472},9,[277,474,475],{"class":428},"// app's sandboxed data directory.\n",[277,477,479,483,486,489,492,495,498,502,505,508,511,513],{"class":279,"line":478},10,[277,480,482],{"class":481},"spNyl","const",[277,484,485],{"class":372}," dbInstance ",[277,487,488],{"class":379},"=",[277,490,491],{"class":368}," await",[277,493,494],{"class":372}," Database",[277,496,497],{"class":379},".",[277,499,501],{"class":500},"s2Zo4","load",[277,503,504],{"class":372},"(",[277,506,507],{"class":379},"'",[277,509,510],{"class":286},"sqlite:main.db",[277,512,507],{"class":379},[277,514,515],{"class":372},")\n",[277,517,519],{"class":279,"line":518},11,[277,520,422],{"emptyLinePlaceholder":421},[277,522,524],{"class":279,"line":523},12,[277,525,526],{"class":428},"// Initialize the ORM with the database instance and schema.\n",[277,528,530],{"class":279,"line":529},13,[277,531,532],{"class":428},"// Passing the schema object enables automatic migrations and relation queries.\n",[277,534,536],{"class":279,"line":535},14,[277,537,538],{"class":428},"// Use asTauriDatabase() if TypeScript reports type incompatibility.\n",[277,540,542,545,548,551,553,556,558,560,563,566,568],{"class":279,"line":541},15,[277,543,544],{"class":368},"export",[277,546,547],{"class":481}," const",[277,549,550],{"class":372}," db ",[277,552,488],{"class":379},[277,554,555],{"class":379}," new",[277,557,396],{"class":500},[277,559,504],{"class":372},[277,561,562],{"class":500},"asTauriDatabase",[277,564,565],{"class":372},"(dbInstance)",[277,567,399],{"class":379},[277,569,570],{"class":372}," schema)\n",[572,573,576,580,581,584,585,588,589,592,593,596,597,596,600,603,604,497],"callout",{"color":574,"icon":575},"primary","i-lucide-info",[577,578,579],"strong",{},"Type compatibility:"," If TypeScript reports that ",[259,582,583],{},"Database"," is not assignable to ",[259,586,587],{},"DatabaseLike",", wrap the instance with ",[259,590,591],{},"asTauriDatabase(dbInstance)",". This is a type assertion helper—the ORM uses ",[259,594,595],{},"$1",", ",[259,598,599],{},"$2",[259,601,602],{},"$3"," placeholders compatible with ",[259,605,261],{},[247,607,608,609,612],{},"Now you're all set! The ",[259,610,611],{},"db"," object is your main entry point for all database interactions. In the next section, we'll define a schema and run our first query.",[614,615,616],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}",{"title":273,"searchDepth":388,"depth":388,"links":618},[619,620],{"id":253,"depth":388,"text":254},{"id":345,"depth":388,"text":346},"md",null,{},{"icon":136},{"title":133,"description":249},"AB65E15HuD2gmKUBAkAcNIoahNFXYiUeVAV6bPhkzMw",[628,630],{"title":11,"path":129,"stem":130,"description":629,"icon":131,"children":-1},"Welcome to Tauri SQLite ORM - A Drizzle-like ORM for Tauri v2",{"title":138,"path":139,"stem":140,"description":631,"icon":81,"children":-1},"A Quick Start guide with examples.",1773317298789]