{"version":3,"sources":["webpack:///./src/pages/docs/Connecting to Databases/docker-add-drivers.mdx"],"names":["_frontmatter","layoutProps","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","isMDXComponent"],"mappings":"wPAMaA,G,UAAe,S,+OAE5B,IAKMC,EAAc,CAClBD,gBAEIE,EAAYC,IACH,SAASC,EAAT,GAGZ,IAFDC,EAEC,EAFDA,WACGC,EACF,8BACD,OAAO,YAACJ,EAAD,eAAeD,EAAiBK,EAAhC,CAAuCD,WAAYA,EAAYE,QAAQ,cAC5E,iBAAQ,CACN,GAAM,gDADR,gDAGA,sLAEE,yBAAgB,CACd,WAAc,KADhB,kBAFF,6CAQE,gBAAO,CACL,KAAQ,4EACR,WAAc,KAFhB,oBARF,SAcE,gBAAO,CACL,KAAQ,gFACR,WAAc,KAFhB,wBAdF,sCAoBA,mRAGA,iBAAQ,CACN,GAAM,mCADR,oCAGA,yDACE,gBAAO,CACL,KAAQ,8CACR,WAAc,KAFhB,mBADF,oBAMA,iHACA,iBAAQ,CACN,GAAM,0BADR,2BAGA,qFACE,yBAAgB,CACd,WAAc,KADhB,kBADF,2BAME,yBAAgB,CACd,WAAc,KADhB,2BANF,0GAWA,+DACE,yBAAgB,CACd,WAAc,KADhB,kBADF,uKAOA,+BACE,yBAAgB,CACd,WAAc,KADhB,2BAGF,uBAAK,mBAAU,CACX,WAAc,OADb,qEAKL,+DACA,uBAAK,mBAAU,CACX,WAAc,OADb,4DAIL,+EACA,uBAAK,mBAAU,CACX,WAAc,OADb,sCAIL,gGACA,uBAAK,mBAAU,CACX,WAAc,OADb,wBAIL,iBAAQ,CACN,GAAM,sBADR,uBAGA,iHACA,oVAIA,qDACA,uBAAK,mBAAU,CACX,WAAc,OADb,yEAIL,mDACA,uBAAK,mBAAU,CACX,WAAc,OADb,4FAIL,+KAEA,yH,6OAKJH,EAAWI,gBAAiB","file":"component---src-pages-docs-connecting-to-databases-docker-add-drivers-mdx-621f664bab546957bc05.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsx mdx */\n\nimport DefaultLayout from \"/Users/max/code/superset/docs/node_modules/gatsby-theme-docz/src/base/Layout.js\";\nexport const _frontmatter = {};\n\nconst makeShortcode = name => function MDXDefaultShortcode(props) {\n  console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n  return <div {...props} />;\n};\n\nconst layoutProps = {\n  _frontmatter\n};\nconst MDXLayout = DefaultLayout;\nexport default function MDXContent({\n  components,\n  ...props\n}) {\n  return <MDXLayout {...layoutProps} {...props} components={components} mdxType=\"MDXLayout\">\n    <h2 {...{\n      \"id\": \"install-new-database-drivers-in-docker-image\"\n    }}>{`Install New Database Drivers in Docker Image`}</h2>\n    <p>{`Superset requires a Python database driver to be installed for each additional type of database you\nwant to connect to. When setting up Superset locally via `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`docker-compose`}</inlineCode>\n      {`, the drivers and packages\ncontained in\n`}\n      <a {...{\n        \"href\": \"https://github.com/apache/incubator-superset/blob/master/requirements.txt\",\n        \"parentName\": \"p\"\n      }}>{`requirements.txt`}</a>\n      {` and\n`}\n      <a {...{\n        \"href\": \"https://github.com/apache/incubator-superset/blob/master/requirements-dev.txt\",\n        \"parentName\": \"p\"\n      }}>{`requirements-dev.txt`}</a>\n      {`\nwill be installed automatically.`}</p>\n    <p>{`In this section, we'll walk through how to install the MySQL connector library. The connector\nlibrary installation process is the same for all additional libraries and we'll end this section\nwith the recommended connector library for each database.`}</p>\n    <h3 {...{\n      \"id\": \"1-determine-the-driver-you-need\"\n    }}>{`1. Determine the driver you need`}</h3>\n    <p>{`To figure out how to install the `}\n      <a {...{\n        \"href\": \"/docs/databases/installing-database-drivers\",\n        \"parentName\": \"p\"\n      }}>{`database driver`}</a>\n      {` of your choice.`}</p>\n    <p>{`In the example, we'll walk through the process of installing a MySQL driver in Superset.`}</p>\n    <h3 {...{\n      \"id\": \"2-install-mysql-driver\"\n    }}>{`2. Install MySQL Driver`}</h3>\n    <p>{`As we are currently running inside of a Docker container via `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`docker compose`}</inlineCode>\n      {`, we cannot simply run\n`}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`pip install mysqlclient`}</inlineCode>\n      {` on our local shell and expect the drivers to be installed within the\nDocker containers for superset.`}</p>\n    <p>{`In order to address this, the Superset `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`docker compose`}</inlineCode>\n      {` setup comes with a mechanism for you to\ninstall packages locally, which will be ignored by Git for the purposes of local development. Please\nfollow these steps:`}</p>\n    <p>{`Create `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`requirements-local.txt`}</inlineCode></p>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`# From the repo root...\ntouch ./docker/requirements-local.txt\n`}</code></pre>\n    <p>{`Add the driver selected in step above:`}</p>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`echo \"mysqlclient\" >> ./docker/requirements-local.txt\n`}</code></pre>\n    <p>{`Rebuild your local image with the new driver baked in:`}</p>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`docker-compose build --force-rm\n`}</code></pre>\n    <p>{`After the rebuild is complete, which make take a few minutes, relaunch:`}</p>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`docker-compose up\n`}</code></pre>\n    <h3 {...{\n      \"id\": \"3-connect-to-mysql\"\n    }}>{`3. Connect to MySQL`}</h3>\n    <p>{`Now that you've got a MySQL driver installed locally, you should be able to test it out.`}</p>\n    <p>{`We can now create a Datasource in Superset that can be used to connect to a MySQL instance. Assuming\nyour MySQL instance is running locally and can be accessed via localhost, use the following\nconnection string in “SQL Alchemy URI”, by going to Sources > Databases > + icon (to add a new\ndatasource) in Superset.`}</p>\n    <p>{`For Docker running in Linux:`}</p>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`mysql://mysqluser:mysqluserpassword@localhost/example?charset=utf8\n`}</code></pre>\n    <p>{`For Docker running in OSX:`}</p>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`mysql://mysqluser:mysqluserpassword@docker.for.mac.host.internal/example?charset=utf8\n`}</code></pre>\n    <p>{`Then click “Test Connection”, which should give you an “OK” message. If not, please look at your\nterminal for error messages, and reach out for help.`}</p>\n    <p>{`You can repeat this process for every database you want superset to be able to connect to.`}</p>\n\n  </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;\n      "],"sourceRoot":""}