[{"data":1,"prerenderedAt":1996},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-quick-start":106,"-getting-started-quick-start-surround":1991},[4,26,57,83],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":25},"Getting Started","i-lucide-rocket","/getting-started","1.getting-started",[10,15,20],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","/getting-started/introduction","1.getting-started/1.introduction","i-lucide-info",{"title":16,"path":17,"stem":18,"icon":19},"Installation","/getting-started/installation","1.getting-started/2.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Quick Start","/getting-started/quick-start","1.getting-started/3.quick-start","i-lucide-play",false,{"title":27,"icon":28,"path":29,"stem":30,"children":31,"page":25},"Core Concepts","i-lucide-book-open","/essentials","2.essentials",[32,37,42,47,52],{"title":33,"path":34,"stem":35,"icon":36},"Models","/essentials/models","2.essentials/1.models","i-lucide-box",{"title":38,"path":39,"stem":40,"icon":41},"Collections","/essentials/collections","2.essentials/2.collections","i-lucide-folder",{"title":43,"path":44,"stem":45,"icon":46},"Views","/essentials/views","2.essentials/3.views","i-lucide-table",{"title":48,"path":49,"stem":50,"icon":51},"Schema Evolution","/essentials/schema-evolution","2.essentials/4.schema-evolution","i-lucide-git-branch",{"title":53,"path":54,"stem":55,"icon":56},"Relations","/essentials/relations","2.essentials/5.relations","i-lucide-link",{"title":58,"icon":59,"path":60,"stem":61,"children":62,"page":25},"Advanced","i-lucide-settings","/advanced","3.advanced",[63,68,73,78],{"title":64,"path":65,"stem":66,"icon":67},"Time-Series","/advanced/time-series","3.advanced/1.time-series","i-lucide-chart-line",{"title":69,"path":70,"stem":71,"icon":72},"Async Support","/advanced/async","3.advanced/2.async","i-lucide-zap",{"title":74,"path":75,"stem":76,"icon":77},"PostgreSQL","/advanced/postgresql","3.advanced/3.postgresql","i-lucide-database",{"title":79,"path":80,"stem":81,"icon":82},"Performance Guide","/advanced/performance","3.advanced/4.performance","i-lucide-gauge",{"title":84,"icon":85,"path":86,"stem":87,"children":88,"page":25},"API Reference","i-lucide-file-code","/api","4.api",[89,94,98,101],{"title":90,"path":91,"stem":92,"icon":93},"Engine","/api/engine","4.api/1.engine","i-lucide-cog",{"title":95,"path":96,"stem":97,"icon":41},"Collection","/api/collection","4.api/2.collection",{"title":33,"path":99,"stem":100,"icon":36},"/api/models","4.api/3.models",{"title":102,"path":103,"stem":104,"icon":105},"Exceptions","/api/exceptions","4.api/4.exceptions","i-lucide-alert-triangle",{"id":107,"title":21,"body":108,"description":1984,"extension":1985,"links":1986,"meta":1987,"navigation":1988,"path":22,"seo":1989,"stem":23,"__hash__":1990},"docs/1.getting-started/3.quick-start.md",{"type":109,"value":110,"toc":1972},"minimark",[111,115,120,132,257,272,276,358,373,377,454,457,531,534,691,695,850,854,857,1054,1058,1101,1105,1121,1256,1259,1283,1295,1299,1309,1446,1449,1477,1481,1921,1925,1955,1968],[112,113,114],"p",{},"This guide takes you from zero to a working CentauroDB application. You'll define a model, store objects, query them with Python and SQL, and see schema evolution in action — all without writing a single migration.",[116,117,119],"h2",{"id":118},"_1-define-a-model","1. Define a model",[112,121,122,123,127,128,131],{},"Every model inherits from ",[124,125,126],"code",{},"CentauroModel"," and needs a ",[124,129,130],{},"__centauro_name__"," — a stable identifier that decouples your Python class name from stored data:",[133,134,139],"pre",{"className":135,"code":136,"language":137,"meta":138,"style":138},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","from centaurodb import CentauroModel\n\nclass Note(CentauroModel):\n    __centauro_name__ = \"Note\"\n    title: str = \"\"\n    body: str = \"\"\n    tag: str = \"general\"\n","python","",[124,140,141,160,167,187,206,224,238],{"__ignoreMap":138},[142,143,146,150,154,157],"span",{"class":144,"line":145},"line",1,[142,147,149],{"class":148},"s7zQu","from",[142,151,153],{"class":152},"sTEyZ"," centaurodb ",[142,155,156],{"class":148},"import",[142,158,159],{"class":152}," CentauroModel\n",[142,161,163],{"class":144,"line":162},2,[142,164,166],{"emptyLinePlaceholder":165},true,"\n",[142,168,170,174,178,182,184],{"class":144,"line":169},3,[142,171,173],{"class":172},"spNyl","class",[142,175,177],{"class":176},"sBMFI"," Note",[142,179,181],{"class":180},"sMK4o","(",[142,183,126],{"class":176},[142,185,186],{"class":180},"):\n",[142,188,190,193,196,199,203],{"class":144,"line":189},4,[142,191,192],{"class":152},"    __centauro_name__ ",[142,194,195],{"class":180},"=",[142,197,198],{"class":180}," \"",[142,200,202],{"class":201},"sfazB","Note",[142,204,205],{"class":180},"\"\n",[142,207,209,212,215,218,221],{"class":144,"line":208},5,[142,210,211],{"class":152},"    title",[142,213,214],{"class":180},":",[142,216,217],{"class":176}," str",[142,219,220],{"class":180}," =",[142,222,223],{"class":180}," \"\"\n",[142,225,227,230,232,234,236],{"class":144,"line":226},6,[142,228,229],{"class":152},"    body",[142,231,214],{"class":180},[142,233,217],{"class":176},[142,235,220],{"class":180},[142,237,223],{"class":180},[142,239,241,244,246,248,250,252,255],{"class":144,"line":240},7,[142,242,243],{"class":152},"    tag",[142,245,214],{"class":180},[142,247,217],{"class":176},[142,249,220],{"class":180},[142,251,198],{"class":180},[142,253,254],{"class":201},"general",[142,256,205],{"class":180},[258,259,260,261,265,266,271],"callout",{"icon":14},"All fields ",[262,263,264],"strong",{},"must"," have defaults — this is what makes zero-migration schema evolution possible. Old rows without new fields get the default on read. See ",[267,268,270],"a",{"href":269},"/essentials/models#the-three-rules","Model Rules"," for why.",[116,273,275],{"id":274},"_2-create-an-engine-and-collection","2. Create an engine and collection",[133,277,279],{"className":135,"code":278,"language":137,"meta":138,"style":138},"from centaurodb import Engine, Collection\n\nengine = Engine(\"app.db\")           # file-based SQLite\ncoll = Collection(engine, \"app\")     # creates the table automatically\n",[124,280,281,298,302,329],{"__ignoreMap":138},[142,282,283,285,287,289,292,295],{"class":144,"line":145},[142,284,149],{"class":148},[142,286,153],{"class":152},[142,288,156],{"class":148},[142,290,291],{"class":152}," Engine",[142,293,294],{"class":180},",",[142,296,297],{"class":152}," Collection\n",[142,299,300],{"class":144,"line":162},[142,301,166],{"emptyLinePlaceholder":165},[142,303,304,307,309,312,314,317,320,322,325],{"class":144,"line":169},[142,305,306],{"class":152},"engine ",[142,308,195],{"class":180},[142,310,291],{"class":311},"s2Zo4",[142,313,181],{"class":180},[142,315,316],{"class":180},"\"",[142,318,319],{"class":201},"app.db",[142,321,316],{"class":180},[142,323,324],{"class":180},")",[142,326,328],{"class":327},"sHwdD","           # file-based SQLite\n",[142,330,331,334,336,339,341,344,346,348,351,353,355],{"class":144,"line":189},[142,332,333],{"class":152},"coll ",[142,335,195],{"class":180},[142,337,338],{"class":311}," Collection",[142,340,181],{"class":180},[142,342,343],{"class":311},"engine",[142,345,294],{"class":180},[142,347,198],{"class":180},[142,349,350],{"class":201},"app",[142,352,316],{"class":180},[142,354,324],{"class":180},[142,356,357],{"class":327},"     # creates the table automatically\n",[112,359,360,361,364,365,368,369,372],{},"That's it — no ",[124,362,363],{},"CREATE TABLE",", no connection pooling setup. For in-memory databases, use ",[124,366,367],{},"Engine()"," or ",[124,370,371],{},"Engine(\":memory:\")",".",[116,374,376],{"id":375},"_3-write-objects","3. Write objects",[133,378,380],{"className":135,"code":379,"language":137,"meta":138,"style":138},"note = Note(title=\"Chiron's teachings\", body=\"Wisdom from Mount Pelion\", tag=\"lore\")\ncoll.write_object(note)\n",[124,381,382,437],{"__ignoreMap":138},[142,383,384,387,389,391,393,397,399,401,404,406,408,411,413,415,418,420,422,425,427,429,432,434],{"class":144,"line":145},[142,385,386],{"class":152},"note ",[142,388,195],{"class":180},[142,390,177],{"class":311},[142,392,181],{"class":180},[142,394,396],{"class":395},"sHdIc","title",[142,398,195],{"class":180},[142,400,316],{"class":180},[142,402,403],{"class":201},"Chiron's teachings",[142,405,316],{"class":180},[142,407,294],{"class":180},[142,409,410],{"class":395}," body",[142,412,195],{"class":180},[142,414,316],{"class":180},[142,416,417],{"class":201},"Wisdom from Mount Pelion",[142,419,316],{"class":180},[142,421,294],{"class":180},[142,423,424],{"class":395}," tag",[142,426,195],{"class":180},[142,428,316],{"class":180},[142,430,431],{"class":201},"lore",[142,433,316],{"class":180},[142,435,436],{"class":180},")\n",[142,438,439,442,444,447,449,452],{"class":144,"line":162},[142,440,441],{"class":152},"coll",[142,443,372],{"class":180},[142,445,446],{"class":311},"write_object",[142,448,181],{"class":180},[142,450,451],{"class":311},"note",[142,453,436],{"class":180},[112,455,456],{},"After writing, the object has database metadata:",[133,458,460],{"className":135,"code":459,"language":137,"meta":138,"style":138},"print(note.row.id)          # 1\nprint(note.row.name)        # \"Note\"\nprint(note.row.write_time)  # when it was stored\n",[124,461,462,487,509],{"__ignoreMap":138},[142,463,464,467,469,471,473,477,479,482,484],{"class":144,"line":145},[142,465,466],{"class":311},"print",[142,468,181],{"class":180},[142,470,451],{"class":311},[142,472,372],{"class":180},[142,474,476],{"class":475},"swJcz","row",[142,478,372],{"class":180},[142,480,481],{"class":475},"id",[142,483,324],{"class":180},[142,485,486],{"class":327},"          # 1\n",[142,488,489,491,493,495,497,499,501,504,506],{"class":144,"line":162},[142,490,466],{"class":311},[142,492,181],{"class":180},[142,494,451],{"class":311},[142,496,372],{"class":180},[142,498,476],{"class":475},[142,500,372],{"class":180},[142,502,503],{"class":475},"name",[142,505,324],{"class":180},[142,507,508],{"class":327},"        # \"Note\"\n",[142,510,511,513,515,517,519,521,523,526,528],{"class":144,"line":169},[142,512,466],{"class":311},[142,514,181],{"class":180},[142,516,451],{"class":311},[142,518,372],{"class":180},[142,520,476],{"class":475},[142,522,372],{"class":180},[142,524,525],{"class":475},"write_time",[142,527,324],{"class":180},[142,529,530],{"class":327},"  # when it was stored\n",[112,532,533],{},"Write a few more so we have data to query:",[133,535,537],{"className":135,"code":536,"language":137,"meta":138,"style":138},"coll.write_objects([\n    Note(title=\"The Golden Fleece\", body=\"Guarded by a sleepless dragon\", tag=\"quest\"),\n    Note(title=\"Labyrinth blueprint\", body=\"Thread from Ariadne required\", tag=\"quest\"),\n    Note(title=\"Herbs of Pelion\", body=\"Centaur remedies for battle wounds\", tag=\"lore\"),\n])\n",[124,538,539,551,598,642,686],{"__ignoreMap":138},[142,540,541,543,545,548],{"class":144,"line":145},[142,542,441],{"class":152},[142,544,372],{"class":180},[142,546,547],{"class":311},"write_objects",[142,549,550],{"class":180},"([\n",[142,552,553,556,558,560,562,564,567,569,571,573,575,577,580,582,584,586,588,590,593,595],{"class":144,"line":162},[142,554,555],{"class":311},"    Note",[142,557,181],{"class":180},[142,559,396],{"class":395},[142,561,195],{"class":180},[142,563,316],{"class":180},[142,565,566],{"class":201},"The Golden Fleece",[142,568,316],{"class":180},[142,570,294],{"class":180},[142,572,410],{"class":395},[142,574,195],{"class":180},[142,576,316],{"class":180},[142,578,579],{"class":201},"Guarded by a sleepless dragon",[142,581,316],{"class":180},[142,583,294],{"class":180},[142,585,424],{"class":395},[142,587,195],{"class":180},[142,589,316],{"class":180},[142,591,592],{"class":201},"quest",[142,594,316],{"class":180},[142,596,597],{"class":180},"),\n",[142,599,600,602,604,606,608,610,613,615,617,619,621,623,626,628,630,632,634,636,638,640],{"class":144,"line":169},[142,601,555],{"class":311},[142,603,181],{"class":180},[142,605,396],{"class":395},[142,607,195],{"class":180},[142,609,316],{"class":180},[142,611,612],{"class":201},"Labyrinth blueprint",[142,614,316],{"class":180},[142,616,294],{"class":180},[142,618,410],{"class":395},[142,620,195],{"class":180},[142,622,316],{"class":180},[142,624,625],{"class":201},"Thread from Ariadne required",[142,627,316],{"class":180},[142,629,294],{"class":180},[142,631,424],{"class":395},[142,633,195],{"class":180},[142,635,316],{"class":180},[142,637,592],{"class":201},[142,639,316],{"class":180},[142,641,597],{"class":180},[142,643,644,646,648,650,652,654,657,659,661,663,665,667,670,672,674,676,678,680,682,684],{"class":144,"line":189},[142,645,555],{"class":311},[142,647,181],{"class":180},[142,649,396],{"class":395},[142,651,195],{"class":180},[142,653,316],{"class":180},[142,655,656],{"class":201},"Herbs of Pelion",[142,658,316],{"class":180},[142,660,294],{"class":180},[142,662,410],{"class":395},[142,664,195],{"class":180},[142,666,316],{"class":180},[142,668,669],{"class":201},"Centaur remedies for battle wounds",[142,671,316],{"class":180},[142,673,294],{"class":180},[142,675,424],{"class":395},[142,677,195],{"class":180},[142,679,316],{"class":180},[142,681,431],{"class":201},[142,683,316],{"class":180},[142,685,597],{"class":180},[142,687,688],{"class":144,"line":208},[142,689,690],{"class":180},"])\n",[116,692,694],{"id":693},"_4-read-objects","4. Read objects",[133,696,698],{"className":135,"code":697,"language":137,"meta":138,"style":138},"# By id\nloaded = coll.read_object_by_id(1, Note)\nprint(loaded.title)  # \"Chiron's teachings\"\n\n# Latest note\nlatest = coll.read_latest_object(Note)\nprint(latest.title)  # \"Herbs of Pelion\"\n\n# All notes\nall_notes = coll.read_objects(Note)\nprint(len(all_notes))  # 4\n",[124,699,700,705,732,750,754,759,779,797,802,808,829],{"__ignoreMap":138},[142,701,702],{"class":144,"line":145},[142,703,704],{"class":327},"# By id\n",[142,706,707,710,712,715,717,720,722,726,728,730],{"class":144,"line":162},[142,708,709],{"class":152},"loaded ",[142,711,195],{"class":180},[142,713,714],{"class":152}," coll",[142,716,372],{"class":180},[142,718,719],{"class":311},"read_object_by_id",[142,721,181],{"class":180},[142,723,725],{"class":724},"sbssI","1",[142,727,294],{"class":180},[142,729,177],{"class":311},[142,731,436],{"class":180},[142,733,734,736,738,741,743,745,747],{"class":144,"line":169},[142,735,466],{"class":311},[142,737,181],{"class":180},[142,739,740],{"class":311},"loaded",[142,742,372],{"class":180},[142,744,396],{"class":475},[142,746,324],{"class":180},[142,748,749],{"class":327},"  # \"Chiron's teachings\"\n",[142,751,752],{"class":144,"line":189},[142,753,166],{"emptyLinePlaceholder":165},[142,755,756],{"class":144,"line":208},[142,757,758],{"class":327},"# Latest note\n",[142,760,761,764,766,768,770,773,775,777],{"class":144,"line":226},[142,762,763],{"class":152},"latest ",[142,765,195],{"class":180},[142,767,714],{"class":152},[142,769,372],{"class":180},[142,771,772],{"class":311},"read_latest_object",[142,774,181],{"class":180},[142,776,202],{"class":311},[142,778,436],{"class":180},[142,780,781,783,785,788,790,792,794],{"class":144,"line":240},[142,782,466],{"class":311},[142,784,181],{"class":180},[142,786,787],{"class":311},"latest",[142,789,372],{"class":180},[142,791,396],{"class":475},[142,793,324],{"class":180},[142,795,796],{"class":327},"  # \"Herbs of Pelion\"\n",[142,798,800],{"class":144,"line":799},8,[142,801,166],{"emptyLinePlaceholder":165},[142,803,805],{"class":144,"line":804},9,[142,806,807],{"class":327},"# All notes\n",[142,809,811,814,816,818,820,823,825,827],{"class":144,"line":810},10,[142,812,813],{"class":152},"all_notes ",[142,815,195],{"class":180},[142,817,714],{"class":152},[142,819,372],{"class":180},[142,821,822],{"class":311},"read_objects",[142,824,181],{"class":180},[142,826,202],{"class":311},[142,828,436],{"class":180},[142,830,832,834,836,839,841,844,847],{"class":144,"line":831},11,[142,833,466],{"class":311},[142,835,181],{"class":180},[142,837,838],{"class":311},"len",[142,840,181],{"class":180},[142,842,843],{"class":311},"all_notes",[142,845,846],{"class":180},"))",[142,848,849],{"class":327},"  # 4\n",[116,851,853],{"id":852},"_5-query-with-the-field-dsl","5. Query with the field DSL",[112,855,856],{},"Filter objects without writing SQL:",[133,858,860],{"className":135,"code":859,"language":137,"meta":138,"style":138},"# By tag\nquests = coll.read_objects(Note.fields.tag == \"quest\")\nprint(len(quests))  # 2\n\n# Pattern matching\npelion_notes = coll.read_objects(Note.fields.title.like(\"%Pelion%\"))\n\n# Multiple conditions (AND)\nresults = coll.read_objects(\n    Note.fields.tag == \"lore\",\n    Note.fields.title.like(\"%Chiron%\"),\n)\n",[124,861,862,867,905,923,927,932,974,978,983,999,1022,1049],{"__ignoreMap":138},[142,863,864],{"class":144,"line":145},[142,865,866],{"class":327},"# By tag\n",[142,868,869,872,874,876,878,880,882,884,886,889,891,894,897,899,901,903],{"class":144,"line":162},[142,870,871],{"class":152},"quests ",[142,873,195],{"class":180},[142,875,714],{"class":152},[142,877,372],{"class":180},[142,879,822],{"class":311},[142,881,181],{"class":180},[142,883,202],{"class":311},[142,885,372],{"class":180},[142,887,888],{"class":475},"fields",[142,890,372],{"class":180},[142,892,893],{"class":475},"tag",[142,895,896],{"class":180}," ==",[142,898,198],{"class":180},[142,900,592],{"class":201},[142,902,316],{"class":180},[142,904,436],{"class":180},[142,906,907,909,911,913,915,918,920],{"class":144,"line":169},[142,908,466],{"class":311},[142,910,181],{"class":180},[142,912,838],{"class":311},[142,914,181],{"class":180},[142,916,917],{"class":311},"quests",[142,919,846],{"class":180},[142,921,922],{"class":327},"  # 2\n",[142,924,925],{"class":144,"line":189},[142,926,166],{"emptyLinePlaceholder":165},[142,928,929],{"class":144,"line":208},[142,930,931],{"class":327},"# Pattern matching\n",[142,933,934,937,939,941,943,945,947,949,951,953,955,957,959,962,964,966,969,971],{"class":144,"line":226},[142,935,936],{"class":152},"pelion_notes ",[142,938,195],{"class":180},[142,940,714],{"class":152},[142,942,372],{"class":180},[142,944,822],{"class":311},[142,946,181],{"class":180},[142,948,202],{"class":311},[142,950,372],{"class":180},[142,952,888],{"class":475},[142,954,372],{"class":180},[142,956,396],{"class":475},[142,958,372],{"class":180},[142,960,961],{"class":311},"like",[142,963,181],{"class":180},[142,965,316],{"class":180},[142,967,968],{"class":201},"%Pelion%",[142,970,316],{"class":180},[142,972,973],{"class":180},"))\n",[142,975,976],{"class":144,"line":240},[142,977,166],{"emptyLinePlaceholder":165},[142,979,980],{"class":144,"line":799},[142,981,982],{"class":327},"# Multiple conditions (AND)\n",[142,984,985,988,990,992,994,996],{"class":144,"line":804},[142,986,987],{"class":152},"results ",[142,989,195],{"class":180},[142,991,714],{"class":152},[142,993,372],{"class":180},[142,995,822],{"class":311},[142,997,998],{"class":180},"(\n",[142,1000,1001,1003,1005,1007,1009,1011,1013,1015,1017,1019],{"class":144,"line":810},[142,1002,555],{"class":311},[142,1004,372],{"class":180},[142,1006,888],{"class":475},[142,1008,372],{"class":180},[142,1010,893],{"class":475},[142,1012,896],{"class":180},[142,1014,198],{"class":180},[142,1016,431],{"class":201},[142,1018,316],{"class":180},[142,1020,1021],{"class":180},",\n",[142,1023,1024,1026,1028,1030,1032,1034,1036,1038,1040,1042,1045,1047],{"class":144,"line":831},[142,1025,555],{"class":311},[142,1027,372],{"class":180},[142,1029,888],{"class":475},[142,1031,372],{"class":180},[142,1033,396],{"class":475},[142,1035,372],{"class":180},[142,1037,961],{"class":311},[142,1039,181],{"class":180},[142,1041,316],{"class":180},[142,1043,1044],{"class":201},"%Chiron%",[142,1046,316],{"class":180},[142,1048,597],{"class":180},[142,1050,1052],{"class":144,"line":1051},12,[142,1053,436],{"class":180},[116,1055,1057],{"id":1056},"_6-update-objects","6. Update objects",[133,1059,1061],{"className":135,"code":1060,"language":137,"meta":138,"style":138},"loaded.body = \"Zero migrations, forever!\"\ncoll.update_object(loaded)\n# edit_time is updated; write_time is preserved\n",[124,1062,1063,1081,1096],{"__ignoreMap":138},[142,1064,1065,1067,1069,1072,1074,1076,1079],{"class":144,"line":145},[142,1066,740],{"class":152},[142,1068,372],{"class":180},[142,1070,1071],{"class":475},"body",[142,1073,220],{"class":180},[142,1075,198],{"class":180},[142,1077,1078],{"class":201},"Zero migrations, forever!",[142,1080,205],{"class":180},[142,1082,1083,1085,1087,1090,1092,1094],{"class":144,"line":162},[142,1084,441],{"class":152},[142,1086,372],{"class":180},[142,1088,1089],{"class":311},"update_object",[142,1091,181],{"class":180},[142,1093,740],{"class":311},[142,1095,436],{"class":180},[142,1097,1098],{"class":144,"line":169},[142,1099,1100],{"class":327},"# edit_time is updated; write_time is preserved\n",[116,1102,1104],{"id":1103},"_7-query-with-sql-views","7. Query with SQL views",[112,1106,1107,1108,1111,1112,1115,1116,1120],{},"Create a SQL view to make your JSON data queryable with standard SQL — connect any BI tool, ORM, or dashboard. The view name is ",[124,1109,1110],{},"{collection}_view_{name}"," (here ",[124,1113,1114],{},"app_view_search","). See ",[267,1117,1119],{"href":1118},"/essentials/views#choosing-a-view-name","Choosing a view name"," for naming conventions.",[133,1122,1124],{"className":135,"code":1123,"language":137,"meta":138,"style":138},"coll.create_view(\"search\", Note)\n\ndf = coll.sql_select(\"\"\"\n    SELECT title, tag\n    FROM app_view_search\n    WHERE tag = 'quest'\n    ORDER BY edit_time DESC\n\"\"\")\nprint(df)\n# ┌──────────────────────┬───────┐\n# │ title                ┆ tag   │\n# │ ---                  ┆ ---   │\n# │ str                  ┆ str   │\n# ╞══════════════════════╪═══════╡\n# │ Labyrinth blueprint  ┆ quest │\n# │ The Golden Fleece    ┆ quest │\n# └──────────────────────┴───────┘\n",[124,1125,1126,1150,1154,1173,1178,1183,1188,1193,1200,1211,1216,1221,1226,1232,1238,1244,1250],{"__ignoreMap":138},[142,1127,1128,1130,1132,1135,1137,1139,1142,1144,1146,1148],{"class":144,"line":145},[142,1129,441],{"class":152},[142,1131,372],{"class":180},[142,1133,1134],{"class":311},"create_view",[142,1136,181],{"class":180},[142,1138,316],{"class":180},[142,1140,1141],{"class":201},"search",[142,1143,316],{"class":180},[142,1145,294],{"class":180},[142,1147,177],{"class":311},[142,1149,436],{"class":180},[142,1151,1152],{"class":144,"line":162},[142,1153,166],{"emptyLinePlaceholder":165},[142,1155,1156,1159,1161,1163,1165,1168,1170],{"class":144,"line":169},[142,1157,1158],{"class":152},"df ",[142,1160,195],{"class":180},[142,1162,714],{"class":152},[142,1164,372],{"class":180},[142,1166,1167],{"class":311},"sql_select",[142,1169,181],{"class":180},[142,1171,1172],{"class":180},"\"\"\"\n",[142,1174,1175],{"class":144,"line":189},[142,1176,1177],{"class":201},"    SELECT title, tag\n",[142,1179,1180],{"class":144,"line":208},[142,1181,1182],{"class":201},"    FROM app_view_search\n",[142,1184,1185],{"class":144,"line":226},[142,1186,1187],{"class":201},"    WHERE tag = 'quest'\n",[142,1189,1190],{"class":144,"line":240},[142,1191,1192],{"class":201},"    ORDER BY edit_time DESC\n",[142,1194,1195,1198],{"class":144,"line":799},[142,1196,1197],{"class":180},"\"\"\"",[142,1199,436],{"class":180},[142,1201,1202,1204,1206,1209],{"class":144,"line":804},[142,1203,466],{"class":311},[142,1205,181],{"class":180},[142,1207,1208],{"class":311},"df",[142,1210,436],{"class":180},[142,1212,1213],{"class":144,"line":810},[142,1214,1215],{"class":327},"# ┌──────────────────────┬───────┐\n",[142,1217,1218],{"class":144,"line":831},[142,1219,1220],{"class":327},"# │ title                ┆ tag   │\n",[142,1222,1223],{"class":144,"line":1051},[142,1224,1225],{"class":327},"# │ ---                  ┆ ---   │\n",[142,1227,1229],{"class":144,"line":1228},13,[142,1230,1231],{"class":327},"# │ str                  ┆ str   │\n",[142,1233,1235],{"class":144,"line":1234},14,[142,1236,1237],{"class":327},"# ╞══════════════════════╪═══════╡\n",[142,1239,1241],{"class":144,"line":1240},15,[142,1242,1243],{"class":327},"# │ Labyrinth blueprint  ┆ quest │\n",[142,1245,1247],{"class":144,"line":1246},16,[142,1248,1249],{"class":327},"# │ The Golden Fleece    ┆ quest │\n",[142,1251,1253],{"class":144,"line":1252},17,[142,1254,1255],{"class":327},"# └──────────────────────┴───────┘\n",[112,1257,1258],{},"Speed up filtered queries by adding an index on the fields you filter on:",[133,1260,1262],{"className":135,"code":1261,"language":137,"meta":138,"style":138},"coll.create_index(\"tag\")\n",[124,1263,1264],{"__ignoreMap":138},[142,1265,1266,1268,1270,1273,1275,1277,1279,1281],{"class":144,"line":145},[142,1267,441],{"class":152},[142,1269,372],{"class":180},[142,1271,1272],{"class":311},"create_index",[142,1274,181],{"class":180},[142,1276,316],{"class":180},[142,1278,893],{"class":201},[142,1280,316],{"class":180},[142,1282,436],{"class":180},[258,1284,1285,1286,1289,1290,1294],{"icon":14},"Indexes live on the ",[262,1287,1288],{},"objects table",", not on views — they are fully independent. See ",[267,1291,1293],{"href":1292},"/essentials/views#indexing-fields-for-performance","Indexing fields for performance"," for details.",[116,1296,1298],{"id":1297},"_8-evolve-your-schema","8. Evolve your schema",[112,1300,1301,1302,1305,1306,214],{},"Now add a ",[124,1303,1304],{},"priority"," field — no migration file, no ",[124,1307,1308],{},"ALTER TABLE",[133,1310,1312],{"className":135,"code":1311,"language":137,"meta":138,"style":138},"class Note(CentauroModel):\n    __centauro_name__ = \"Note\"\n    title: str = \"\"\n    body: str = \"\"\n    tag: str = \"general\"\n    priority: int = 0       # new field — old rows get 0 on read\n\n# Old data loads fine\nold_note = coll.read_object_by_id(1, Note)\nprint(old_note.priority)  # 0 — the default\n",[124,1313,1314,1326,1338,1350,1362,1378,1396,1400,1405,1428],{"__ignoreMap":138},[142,1315,1316,1318,1320,1322,1324],{"class":144,"line":145},[142,1317,173],{"class":172},[142,1319,177],{"class":176},[142,1321,181],{"class":180},[142,1323,126],{"class":176},[142,1325,186],{"class":180},[142,1327,1328,1330,1332,1334,1336],{"class":144,"line":162},[142,1329,192],{"class":152},[142,1331,195],{"class":180},[142,1333,198],{"class":180},[142,1335,202],{"class":201},[142,1337,205],{"class":180},[142,1339,1340,1342,1344,1346,1348],{"class":144,"line":169},[142,1341,211],{"class":152},[142,1343,214],{"class":180},[142,1345,217],{"class":176},[142,1347,220],{"class":180},[142,1349,223],{"class":180},[142,1351,1352,1354,1356,1358,1360],{"class":144,"line":189},[142,1353,229],{"class":152},[142,1355,214],{"class":180},[142,1357,217],{"class":176},[142,1359,220],{"class":180},[142,1361,223],{"class":180},[142,1363,1364,1366,1368,1370,1372,1374,1376],{"class":144,"line":208},[142,1365,243],{"class":152},[142,1367,214],{"class":180},[142,1369,217],{"class":176},[142,1371,220],{"class":180},[142,1373,198],{"class":180},[142,1375,254],{"class":201},[142,1377,205],{"class":180},[142,1379,1380,1383,1385,1388,1390,1393],{"class":144,"line":226},[142,1381,1382],{"class":152},"    priority",[142,1384,214],{"class":180},[142,1386,1387],{"class":176}," int",[142,1389,220],{"class":180},[142,1391,1392],{"class":724}," 0",[142,1394,1395],{"class":327},"       # new field — old rows get 0 on read\n",[142,1397,1398],{"class":144,"line":240},[142,1399,166],{"emptyLinePlaceholder":165},[142,1401,1402],{"class":144,"line":799},[142,1403,1404],{"class":327},"# Old data loads fine\n",[142,1406,1407,1410,1412,1414,1416,1418,1420,1422,1424,1426],{"class":144,"line":804},[142,1408,1409],{"class":152},"old_note ",[142,1411,195],{"class":180},[142,1413,714],{"class":152},[142,1415,372],{"class":180},[142,1417,719],{"class":311},[142,1419,181],{"class":180},[142,1421,725],{"class":724},[142,1423,294],{"class":180},[142,1425,177],{"class":311},[142,1427,436],{"class":180},[142,1429,1430,1432,1434,1437,1439,1441,1443],{"class":144,"line":810},[142,1431,466],{"class":311},[142,1433,181],{"class":180},[142,1435,1436],{"class":311},"old_note",[142,1438,372],{"class":180},[142,1440,1304],{"class":475},[142,1442,324],{"class":180},[142,1444,1445],{"class":327},"  # 0 — the default\n",[112,1447,1448],{},"Refresh the view to pick up the new column:",[133,1450,1452],{"className":135,"code":1451,"language":137,"meta":138,"style":138},"coll.refresh_view(\"search\", Note)\n",[124,1453,1454],{"__ignoreMap":138},[142,1455,1456,1458,1460,1463,1465,1467,1469,1471,1473,1475],{"class":144,"line":145},[142,1457,441],{"class":152},[142,1459,372],{"class":180},[142,1461,1462],{"class":311},"refresh_view",[142,1464,181],{"class":180},[142,1466,316],{"class":180},[142,1468,1141],{"class":201},[142,1470,316],{"class":180},[142,1472,294],{"class":180},[142,1474,177],{"class":311},[142,1476,436],{"class":180},[116,1478,1480],{"id":1479},"full-example","Full example",[133,1482,1484],{"className":135,"code":1483,"language":137,"meta":138,"style":138},"from centaurodb import CentauroModel, Collection, Engine\n\nclass Note(CentauroModel):\n    __centauro_name__ = \"Note\"\n    title: str = \"\"\n    body: str = \"\"\n    tag: str = \"general\"\n    priority: int = 0\n\nengine = Engine(\"app.db\")\ncoll = Collection(engine, \"app\")\n\n# Write\ncoll.write_object(Note(title=\"Chiron's teachings\", body=\"Wisdom from Pelion\", tag=\"lore\", priority=1))\ncoll.write_object(Note(title=\"The Golden Fleece\", body=\"Guarded by a dragon\", tag=\"quest\"))\n\n# Create a SQL view (virtual — reads live data from the table)\ncoll.create_view(\"search\", Note)\n\n# Indexes live on the table, independent of the view\ncoll.create_index(\"tag\")\ncoll.create_index(\"priority\")\n\n# Query with Python\nlore = coll.read_objects(Note.fields.tag == \"lore\")\n\n# Query with SQL\ndf = coll.sql_select(\n    \"SELECT title FROM app_view_search WHERE priority > 0\"\n)\n",[124,1485,1486,1506,1510,1522,1534,1546,1558,1574,1587,1591,1609,1631,1635,1640,1700,1751,1755,1760,1783,1788,1794,1813,1832,1837,1843,1879,1884,1890,1905,1916],{"__ignoreMap":138},[142,1487,1488,1490,1492,1494,1497,1499,1501,1503],{"class":144,"line":145},[142,1489,149],{"class":148},[142,1491,153],{"class":152},[142,1493,156],{"class":148},[142,1495,1496],{"class":152}," CentauroModel",[142,1498,294],{"class":180},[142,1500,338],{"class":152},[142,1502,294],{"class":180},[142,1504,1505],{"class":152}," Engine\n",[142,1507,1508],{"class":144,"line":162},[142,1509,166],{"emptyLinePlaceholder":165},[142,1511,1512,1514,1516,1518,1520],{"class":144,"line":169},[142,1513,173],{"class":172},[142,1515,177],{"class":176},[142,1517,181],{"class":180},[142,1519,126],{"class":176},[142,1521,186],{"class":180},[142,1523,1524,1526,1528,1530,1532],{"class":144,"line":189},[142,1525,192],{"class":152},[142,1527,195],{"class":180},[142,1529,198],{"class":180},[142,1531,202],{"class":201},[142,1533,205],{"class":180},[142,1535,1536,1538,1540,1542,1544],{"class":144,"line":208},[142,1537,211],{"class":152},[142,1539,214],{"class":180},[142,1541,217],{"class":176},[142,1543,220],{"class":180},[142,1545,223],{"class":180},[142,1547,1548,1550,1552,1554,1556],{"class":144,"line":226},[142,1549,229],{"class":152},[142,1551,214],{"class":180},[142,1553,217],{"class":176},[142,1555,220],{"class":180},[142,1557,223],{"class":180},[142,1559,1560,1562,1564,1566,1568,1570,1572],{"class":144,"line":240},[142,1561,243],{"class":152},[142,1563,214],{"class":180},[142,1565,217],{"class":176},[142,1567,220],{"class":180},[142,1569,198],{"class":180},[142,1571,254],{"class":201},[142,1573,205],{"class":180},[142,1575,1576,1578,1580,1582,1584],{"class":144,"line":799},[142,1577,1382],{"class":152},[142,1579,214],{"class":180},[142,1581,1387],{"class":176},[142,1583,220],{"class":180},[142,1585,1586],{"class":724}," 0\n",[142,1588,1589],{"class":144,"line":804},[142,1590,166],{"emptyLinePlaceholder":165},[142,1592,1593,1595,1597,1599,1601,1603,1605,1607],{"class":144,"line":810},[142,1594,306],{"class":152},[142,1596,195],{"class":180},[142,1598,291],{"class":311},[142,1600,181],{"class":180},[142,1602,316],{"class":180},[142,1604,319],{"class":201},[142,1606,316],{"class":180},[142,1608,436],{"class":180},[142,1610,1611,1613,1615,1617,1619,1621,1623,1625,1627,1629],{"class":144,"line":831},[142,1612,333],{"class":152},[142,1614,195],{"class":180},[142,1616,338],{"class":311},[142,1618,181],{"class":180},[142,1620,343],{"class":311},[142,1622,294],{"class":180},[142,1624,198],{"class":180},[142,1626,350],{"class":201},[142,1628,316],{"class":180},[142,1630,436],{"class":180},[142,1632,1633],{"class":144,"line":1051},[142,1634,166],{"emptyLinePlaceholder":165},[142,1636,1637],{"class":144,"line":1228},[142,1638,1639],{"class":327},"# Write\n",[142,1641,1642,1644,1646,1648,1650,1652,1654,1656,1658,1660,1662,1664,1666,1668,1670,1672,1675,1677,1679,1681,1683,1685,1687,1689,1691,1694,1696,1698],{"class":144,"line":1234},[142,1643,441],{"class":152},[142,1645,372],{"class":180},[142,1647,446],{"class":311},[142,1649,181],{"class":180},[142,1651,202],{"class":311},[142,1653,181],{"class":180},[142,1655,396],{"class":395},[142,1657,195],{"class":180},[142,1659,316],{"class":180},[142,1661,403],{"class":201},[142,1663,316],{"class":180},[142,1665,294],{"class":180},[142,1667,410],{"class":395},[142,1669,195],{"class":180},[142,1671,316],{"class":180},[142,1673,1674],{"class":201},"Wisdom from Pelion",[142,1676,316],{"class":180},[142,1678,294],{"class":180},[142,1680,424],{"class":395},[142,1682,195],{"class":180},[142,1684,316],{"class":180},[142,1686,431],{"class":201},[142,1688,316],{"class":180},[142,1690,294],{"class":180},[142,1692,1693],{"class":395}," priority",[142,1695,195],{"class":180},[142,1697,725],{"class":724},[142,1699,973],{"class":180},[142,1701,1702,1704,1706,1708,1710,1712,1714,1716,1718,1720,1722,1724,1726,1728,1730,1732,1735,1737,1739,1741,1743,1745,1747,1749],{"class":144,"line":1240},[142,1703,441],{"class":152},[142,1705,372],{"class":180},[142,1707,446],{"class":311},[142,1709,181],{"class":180},[142,1711,202],{"class":311},[142,1713,181],{"class":180},[142,1715,396],{"class":395},[142,1717,195],{"class":180},[142,1719,316],{"class":180},[142,1721,566],{"class":201},[142,1723,316],{"class":180},[142,1725,294],{"class":180},[142,1727,410],{"class":395},[142,1729,195],{"class":180},[142,1731,316],{"class":180},[142,1733,1734],{"class":201},"Guarded by a dragon",[142,1736,316],{"class":180},[142,1738,294],{"class":180},[142,1740,424],{"class":395},[142,1742,195],{"class":180},[142,1744,316],{"class":180},[142,1746,592],{"class":201},[142,1748,316],{"class":180},[142,1750,973],{"class":180},[142,1752,1753],{"class":144,"line":1246},[142,1754,166],{"emptyLinePlaceholder":165},[142,1756,1757],{"class":144,"line":1252},[142,1758,1759],{"class":327},"# Create a SQL view (virtual — reads live data from the table)\n",[142,1761,1763,1765,1767,1769,1771,1773,1775,1777,1779,1781],{"class":144,"line":1762},18,[142,1764,441],{"class":152},[142,1766,372],{"class":180},[142,1768,1134],{"class":311},[142,1770,181],{"class":180},[142,1772,316],{"class":180},[142,1774,1141],{"class":201},[142,1776,316],{"class":180},[142,1778,294],{"class":180},[142,1780,177],{"class":311},[142,1782,436],{"class":180},[142,1784,1786],{"class":144,"line":1785},19,[142,1787,166],{"emptyLinePlaceholder":165},[142,1789,1791],{"class":144,"line":1790},20,[142,1792,1793],{"class":327},"# Indexes live on the table, independent of the view\n",[142,1795,1797,1799,1801,1803,1805,1807,1809,1811],{"class":144,"line":1796},21,[142,1798,441],{"class":152},[142,1800,372],{"class":180},[142,1802,1272],{"class":311},[142,1804,181],{"class":180},[142,1806,316],{"class":180},[142,1808,893],{"class":201},[142,1810,316],{"class":180},[142,1812,436],{"class":180},[142,1814,1816,1818,1820,1822,1824,1826,1828,1830],{"class":144,"line":1815},22,[142,1817,441],{"class":152},[142,1819,372],{"class":180},[142,1821,1272],{"class":311},[142,1823,181],{"class":180},[142,1825,316],{"class":180},[142,1827,1304],{"class":201},[142,1829,316],{"class":180},[142,1831,436],{"class":180},[142,1833,1835],{"class":144,"line":1834},23,[142,1836,166],{"emptyLinePlaceholder":165},[142,1838,1840],{"class":144,"line":1839},24,[142,1841,1842],{"class":327},"# Query with Python\n",[142,1844,1846,1849,1851,1853,1855,1857,1859,1861,1863,1865,1867,1869,1871,1873,1875,1877],{"class":144,"line":1845},25,[142,1847,1848],{"class":152},"lore ",[142,1850,195],{"class":180},[142,1852,714],{"class":152},[142,1854,372],{"class":180},[142,1856,822],{"class":311},[142,1858,181],{"class":180},[142,1860,202],{"class":311},[142,1862,372],{"class":180},[142,1864,888],{"class":475},[142,1866,372],{"class":180},[142,1868,893],{"class":475},[142,1870,896],{"class":180},[142,1872,198],{"class":180},[142,1874,431],{"class":201},[142,1876,316],{"class":180},[142,1878,436],{"class":180},[142,1880,1882],{"class":144,"line":1881},26,[142,1883,166],{"emptyLinePlaceholder":165},[142,1885,1887],{"class":144,"line":1886},27,[142,1888,1889],{"class":327},"# Query with SQL\n",[142,1891,1893,1895,1897,1899,1901,1903],{"class":144,"line":1892},28,[142,1894,1158],{"class":152},[142,1896,195],{"class":180},[142,1898,714],{"class":152},[142,1900,372],{"class":180},[142,1902,1167],{"class":311},[142,1904,998],{"class":180},[142,1906,1908,1911,1914],{"class":144,"line":1907},29,[142,1909,1910],{"class":180},"    \"",[142,1912,1913],{"class":201},"SELECT title FROM app_view_search WHERE priority > 0",[142,1915,205],{"class":180},[142,1917,1919],{"class":144,"line":1918},30,[142,1920,436],{"class":180},[116,1922,1924],{"id":1923},"next-steps","Next steps",[1926,1927,1928,1935,1948,1952],"card-group",{},[1929,1930,1931,1932,1934],"card",{"icon":36,"title":33,"to":34},"Understand ",[124,1933,126],{}," rules and choose between regular models and time-series models.",[1929,1936,1937,1938,1940,1941,1944,1945,372],{"icon":41,"title":38,"to":39},"Master CRUD operations, batch writes, and the full query DSL with ",[124,1939,961],{},", ",[124,1942,1943],{},"is_in",", and ",[124,1946,1947],{},"OrGroup",[1929,1949,1951],{"icon":46,"title":1950,"to":44},"SQL Views","Create indexed views, multi-model union views, and query with standard SQL.",[1929,1953,1954],{"icon":51,"title":48,"to":49},"See how adding, removing, and renaming fields works without migrations.",[258,1956,1957,1960,1961,1963,1964,1967],{"icon":6},[262,1958,1959],{},"Ready for production?"," Check the ",[267,1962,79],{"href":80}," for index tuning, and the ",[267,1965,1966],{"href":75},"PostgreSQL guide"," for deploying with a server-grade backend.",[1969,1970,1971],"style",{},"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 .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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 .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":138,"searchDepth":162,"depth":162,"links":1973},[1974,1975,1976,1977,1978,1979,1980,1981,1982,1983],{"id":118,"depth":162,"text":119},{"id":274,"depth":162,"text":275},{"id":375,"depth":162,"text":376},{"id":693,"depth":162,"text":694},{"id":852,"depth":162,"text":853},{"id":1056,"depth":162,"text":1057},{"id":1103,"depth":162,"text":1104},{"id":1297,"depth":162,"text":1298},{"id":1479,"depth":162,"text":1480},{"id":1923,"depth":162,"text":1924},"Build a working app with CentauroDB in under 5 minutes — define, store, query, evolve.","md",null,{},{"icon":24},{"title":21,"description":1984},"r7JxC4hs9pX-vwcJwKzeMopfiWxl4e-dxk6RggTt_Zo",[1992,1994],{"title":16,"path":17,"stem":18,"description":1993,"icon":19,"children":-1},"Install CentauroDB and its optional dependencies.",{"title":33,"path":34,"stem":35,"description":1995,"icon":36,"children":-1},"Define your data with CentauroModel and CentauroModelSeries — the foundation of CentauroDB.",1781105061847]