{"version":3,"sources":["webpack:///./src/pages/docs/Connecting to Databases/docker-add-drivers.mdx"],"names":["_frontmatter","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","isMDXComponent"],"mappings":"wPAMaA,G,UAAe,S,+OAE5B,IAKMC,EAAYC,IACH,SAASC,EAAT,GAGZ,IAFDC,EAEC,EAFDA,WACGC,EACF,8BACD,OAAO,YAACJ,EAAD,eAAeI,EAAf,CAAsBD,WAAYA,EAAYE,QAAQ,cAC3D,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-3b6dfd4af4c49cd911b4.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 MDXLayout = DefaultLayout;\nexport default function MDXContent({\n  components,\n  ...props\n}) {\n  return <MDXLayout {...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":""}