(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{"mH/e":function(e,t,n){"use strict";n.r(t),n.d(t,"_frontmatter",(function(){return i})),n.d(t,"default",(function(){return l}));var a=n("k1TG"),r=n("8o2o"),o=(n("q1tI"),n("7ljp")),c=n("hhGP"),i=(n("qKvR"),{});void 0!==i&&i&&i===Object(i)&&Object.isExtensible(i)&&!i.hasOwnProperty("__filemeta")&&Object.defineProperty(i,"__filemeta",{configurable:!0,value:{name:"_frontmatter",filename:"src/pages/docs/Connecting to Databases/crate.mdx"}});var b={_frontmatter:i},s=c.a;function l(e){var t=e.components,n=Object(r.a)(e,["components"]);return Object(o.b)(s,Object(a.a)({},b,n,{components:t,mdxType:"MDXLayout"}),Object(o.b)("h2",{id:"cratedb"},"CrateDB"),Object(o.b)("p",null,"The recommended connector library for CrateDB is\n",Object(o.b)("a",Object(a.a)({parentName:"p"},{href:"https://pypi.org/project/crate/"}),"crate"),".\nYou need to install the extras as well for this library.\nWe recommend adding something like the following\ntext to your requirements file:"),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{}),"crate[sqlalchemy]==0.26.0\n")),Object(o.b)("p",null,"The expected connection string is formatted as follows:"),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{}),"crate://crate@127.0.0.1:4200\n")))}void 0!==l&&l&&l===Object(l)&&Object.isExtensible(l)&&!l.hasOwnProperty("__filemeta")&&Object.defineProperty(l,"__filemeta",{configurable:!0,value:{name:"MDXContent",filename:"src/pages/docs/Connecting to Databases/crate.mdx"}}),l.isMDXComponent=!0}}]);
//# sourceMappingURL=component---src-pages-docs-connecting-to-databases-crate-mdx-f23976778508b53d42ef.js.map