{"version":3,"sources":["webpack:///./src/pages/docs/Connecting to Databases/postgres.mdx"],"names":["_frontmatter","layoutProps","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","isMDXComponent"],"mappings":"wPAMaA,G,UAAe,S,qOAE5B,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,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-fe8ff6071a7319159ba6.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\": \"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":""}