{"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-4db4cf23fc76a47dc0d6.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsx mdx */\n\nimport DefaultLayout from \"/Users/srinify/Documents/incubator-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":""}