{"version":3,"sources":["webpack:///./src/pages/docs/Connecting to Databases/postgres.mdx"],"names":["_frontmatter","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","isMDXComponent"],"mappings":"wPAMaA,G,UAAe,S,qOAE5B,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,YADR,YAGA,iEACE,gBAAO,CACL,KAAQ,gCACR,WAAc,KAFhB,YADF,yCAOA,+DACA,sBAEE,iBAAQ,CACN,WAAc,MACb,qBAAY,CACX,WAAc,MADf,aAFH,cAQA,iBAAQ,CACN,WAAc,MACb,qBAAY,CACX,WAAc,MADf,YAFH,gBAQA,iBAAQ,CACN,WAAc,MACb,qBAAY,CACX,WAAc,MADf,iBAFH,IAME,iBAAQ,CACN,WAAc,MAGd,iBAAQ,CACN,WAAc,MADhB,yCAKA,iBAAQ,CACN,WAAc,MADhB,wCAKA,iBAAQ,CACN,WAAc,MADhB,sBAOJ,iBAAQ,CACN,WAAc,MACb,qBAAY,CACX,WAAc,MADf,iBAFH,mBAQA,iBAAQ,CACN,WAAc,MACb,qBAAY,CACX,WAAc,MADf,QAFH,mBAQF,0DACA,uBAAK,mBAAU,CACX,WAAc,OADb,2EAIL,0CACA,uBAAK,mBAAU,CACX,WAAc,OADb,uBAIL,kGAEE,gBAAO,CACL,KAAQ,4GACR,WAAc,KAFhB,mBAFF,cASE,gBAAO,CACL,KAAQ,iFACR,WAAc,KAFhB,mBATF,W,mOAkBJH,EAAWI,gBAAiB","file":"component---src-pages-docs-connecting-to-databases-postgres-mdx-5a59e9a6959255459cfc.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\": \"postgres\"\n    }}>{`Postgres`}</h2>\n    <p>{`Note that the Postgres connector library `}\n      <a {...{\n        \"href\": \"https://www.psycopg.org/docs/\",\n        \"parentName\": \"p\"\n      }}>{`psycopg2`}</a>\n      {` comes out of the\nbox with Superset.`}</p>\n    <p>{`Postgres sample connection parameters:`}</p>\n    <ul>\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><strong {...{\n          \"parentName\": \"li\"\n        }}>{`User Name`}</strong>\n        {`: UserName`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><strong {...{\n          \"parentName\": \"li\"\n        }}>{`Password`}</strong>\n        {`: DBPassword`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><strong {...{\n          \"parentName\": \"li\"\n        }}>{`Database Host`}</strong>\n        {`:`}\n        <ul {...{\n          \"parentName\": \"li\"\n        }}>\n\n          <li {...{\n            \"parentName\": \"ul\"\n          }}>{`For Localhost: localhost or 127.0.0.1`}</li>\n\n\n          <li {...{\n            \"parentName\": \"ul\"\n          }}>{`For On Prem: IP address or Host name`}</li>\n\n\n          <li {...{\n            \"parentName\": \"ul\"\n          }}>{`For AWS Endpoint`}</li>\n\n        </ul></li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><strong {...{\n          \"parentName\": \"li\"\n        }}>{`Database Name`}</strong>\n        {`: Database Name`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><strong {...{\n          \"parentName\": \"li\"\n        }}>{`Port`}</strong>\n        {`: default 5432`}</li>\n\n    </ul>\n    <p>{`The connection string looks like:`}</p>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`postgresql+psycopg2://{username}:{password}@{host}:{port}/{database}\n`}</code></pre>\n    <p>{`Extra parameters:`}</p>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`?sslmode=require\n`}</code></pre>\n    <p>{`More information about PostgreSQL connection options can be found in the\n`}\n      <a {...{\n        \"href\": \"https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.psycopg2\",\n        \"parentName\": \"p\"\n      }}>{`SQLAlchemy docs`}</a>\n      {`\nand the\n`}\n      <a {...{\n        \"href\": \"https://www.postgresql.org/docs/9.1/libpq-connect.html#LIBPQ-PQCONNECTDBPARAMS\",\n        \"parentName\": \"p\"\n      }}>{`PostgreSQL docs`}</a>\n      {`.`}</p>\n\n  </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;\n      "],"sourceRoot":""}