{"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-345887de4f7cc9bc8528.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\": \"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":""}