[{"data":1,"prerenderedAt":484},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fconnections\u002Fsupabase-postgresql":3},{"id":4,"title":5,"body":6,"description":475,"extension":476,"meta":477,"navigation":478,"path":479,"redirect":480,"seo":481,"stem":482,"__hash__":483},"docs\u002Fdocs\u002Fconnections\u002Fsupabase-postgresql.md","Supabase PostgreSQL Guide",{"type":7,"value":8,"toc":466},"minimark",[9,13,17,20,36,39,54,59,94,101,112,115,125,128,134,138,141,195,198,202,220,226,238,243,261,265,268,271,304,312,316,319,322,325,338,386,403,407,437,441,462],[10,11,5],"h1",{"id":12},"supabase-postgresql-guide",[14,15,16],"p",{},"Use this page when your PostgreSQL source or target is hosted in Supabase.",[14,18,19],{},"This guide focuses on the Supabase-specific parts of the setup:",[21,22,23,27,30,33],"ul",{},[24,25,26],"li",{},"choosing the correct Supabase connection method",[24,28,29],{},"importing the PostgreSQL URI into DBConvert Streams",[24,31,32],{},"SSL\u002FTLS expectations",[24,34,35],{},"CDC preparation when Supabase is used as a PostgreSQL CDC source",[14,37,38],{},"For the core PostgreSQL workflow, use:",[21,40,41,48],{},[24,42,43],{},[44,45,47],"a",{"href":46},"\u002Fdocs\u002Fconnections\u002Fpostgresql-server","PostgreSQL Server Configuration",[24,49,50],{},[44,51,53],{"href":52},"\u002Fdocs\u002Fintegration\u002Fpostgres-cdc-source-configuration","PostgreSQL CDC Source Configuration",[55,56,58],"h2",{"id":57},"base-setup","Base setup",[60,61,62,72,75,83],"ol",{},[24,63,64,65,71],{},"Open the ",[44,66,70],{"href":67,"rel":68},"https:\u002F\u002Fsupabase.com\u002Fdashboard",[69],"nofollow","Supabase Dashboard",".",[24,73,74],{},"Select the project that DBConvert Streams should use.",[24,76,77,78,82],{},"Click ",[79,80,81],"strong",{},"Connect"," in the Supabase project header.",[24,84,85,86,89,90,93],{},"Select ",[79,87,88],{},"Direct connection"," if the DBConvert Streams deployment can use IPv6. Select ",[79,91,92],{},"Session pooler"," if the deployment needs IPv4 access.",[14,95,96],{},[97,98],"img",{"alt":99,"src":100},"Supabase Connect panel showing Direct and Session pooler connection methods","\u002Fimages\u002Fdocs\u002Fconnections\u002Fsupabase\u002Fconnect-panel.png",[60,102,104],{"start":103},5,[24,105,106,107,111],{},"Copy the connection URI and replace ",[108,109,110],"code",{},"[YOUR-PASSWORD]"," with the database password.",[14,113,114],{},"Typical direct connection pattern:",[116,117,123],"pre",{"className":118,"code":120,"language":121,"meta":122},[119],"language-text","postgresql:\u002F\u002Fpostgres:[YOUR-PASSWORD]@db.\u003Cproject-ref>.supabase.co:5432\u002Fpostgres\n","text","",[108,124,120],{"__ignoreMap":122},[14,126,127],{},"Typical session pooler pattern:",[116,129,132],{"className":130,"code":131,"language":121,"meta":122},[119],"postgresql:\u002F\u002Fpostgres.\u003Cproject-ref>:[YOUR-PASSWORD]@\u003Cregion>.pooler.supabase.com:5432\u002Fpostgres\n",[108,133,131],{"__ignoreMap":122},[55,135,137],{"id":136},"connection-method","Connection method",[14,139,140],{},"Use the connection method that matches the network path from your DBConvert Streams deployment:",[142,143,144,160],"table",{},[145,146,147],"thead",{},[148,149,150,154,157],"tr",{},[151,152,153],"th",{},"Supabase method",[151,155,156],{},"Use when",[151,158,159],{},"Notes",[161,162,163,174,184],"tbody",{},[148,164,165,168,171],{},[166,167,88],"td",{},[166,169,170],{},"The deployment supports IPv6 or your Supabase project has IPv4 access enabled",[166,172,173],{},"Best fit for long-lived PostgreSQL sessions and CDC workflows",[148,175,176,178,181],{},[166,177,92],{},[166,179,180],{},"The deployment needs IPv4 access without a direct IPv4 endpoint",[166,182,183],{},"Use for regular connection testing, Data Explorer, and Load workflows",[148,185,186,189,192],{},[166,187,188],{},"Transaction pooler",[166,190,191],{},"Short-lived application traffic",[166,193,194],{},"Do not use for CDC workflows or long-lived replication sessions",[14,196,197],{},"Supabase direct database hostnames are IPv6-oriented by default. If your host or container network cannot reach IPv6 addresses, use the Session pooler URI from the Supabase Connect panel.",[55,199,201],{"id":200},"add-the-connection-in-dbconvert-streams","Add the connection in DBConvert Streams",[60,203,204,210,215],{},[24,205,206,207,71],{},"Open ",[79,208,209],{},"Data Explorer",[24,211,77,212,71],{},[79,213,214],{},"New connection",[24,216,85,217,71],{},[79,218,219],{},"PostgreSQL",[221,222],"themed-image",{"alt":223,"dark":224,"light":225},"DBConvert Streams New Connection screen with PostgreSQL selected","\u002Fimages\u002Fdocs\u002Fconnections\u002Fsupabase\u002Fnew-connection-dark.png","\u002Fimages\u002Fdocs\u002Fconnections\u002Fsupabase\u002Fnew-connection-light.png",[60,227,229,235],{"start":228},4,[24,230,231,232,71],{},"Paste the Supabase URI into ",[79,233,234],{},"Connection String",[24,236,237],{},"Confirm that DBConvert Streams fills in the host, port, username, password, and database fields.",[221,239],{"alt":240,"dark":241,"light":242},"DBConvert Streams PostgreSQL connection form filled from a Supabase URI","\u002Fimages\u002Fdocs\u002Fconnections\u002Fsupabase\u002Fpaste-connect-dark.png","\u002Fimages\u002Fdocs\u002Fconnections\u002Fsupabase\u002Fpaste-connect-light.png",[60,244,246,253,258],{"start":245},6,[24,247,248,249,252],{},"Set SSL\u002FTLS to ",[108,250,251],{},"require"," unless your environment has a stricter certificate verification policy.",[24,254,77,255,71],{},[79,256,257],{},"Test Connection",[24,259,260],{},"Save the connection after the test succeeds.",[55,262,264],{"id":263},"ssl-requirements","SSL requirements",[14,266,267],{},"Treat SSL\u002FTLS as required for Supabase connections.",[14,269,270],{},"Common DBConvert Streams settings:",[21,272,273,278,281,287,294],{},[24,274,275,276],{},"SSL mode: ",[108,277,251],{},[24,279,280],{},"Host: copied from the Supabase Direct connection or Session pooler URI",[24,282,283,284],{},"Port: ",[108,285,286],{},"5432",[24,288,289,290,293],{},"Database: usually ",[108,291,292],{},"postgres",", unless you created a separate database",[24,295,296,297,299,300,303],{},"Username: ",[108,298,292],{}," for Direct connection, or ",[108,301,302],{},"postgres.\u003Cproject-ref>"," for Session pooler",[14,305,306,307,311],{},"Use ",[44,308,310],{"href":309},"\u002Fdocs\u002Fnetwork-security\u002Fssl-configuration","SSL Configuration"," if your deployment requires certificate verification with a CA file.",[55,313,315],{"id":314},"cdc-source-preparation","CDC source preparation",[14,317,318],{},"If Supabase is only a Load source, Explorer connection, or target, the base PostgreSQL connection setup is enough.",[14,320,321],{},"If Supabase is the CDC source, use a connection method that supports a long-lived PostgreSQL replication session. Prefer the Direct connection when the deployment can reach it. Use Session pooler only after validating it works for the required PostgreSQL replication behavior in your Supabase project.",[14,323,324],{},"Before creating the CDC stream:",[60,326,327,330,335],{},[24,328,329],{},"Confirm the Supabase plan and project settings allow the logical replication resources you need.",[24,331,332,333,71],{},"Use a database role with the privileges required by ",[44,334,53],{"href":52},[24,336,337],{},"Verify the replication settings from SQL:",[116,339,343],{"className":340,"code":341,"language":342,"meta":122,"style":122},"language-sql shiki shiki-themes github-light github-dark","SELECT name, setting\nFROM pg_settings\nWHERE name IN (\n  'wal_level',\n  'max_replication_slots',\n  'max_wal_senders'\n);\n","sql",[108,344,345,353,359,365,370,375,380],{"__ignoreMap":122},[346,347,350],"span",{"class":348,"line":349},"line",1,[346,351,352],{},"SELECT name, setting\n",[346,354,356],{"class":348,"line":355},2,[346,357,358],{},"FROM pg_settings\n",[346,360,362],{"class":348,"line":361},3,[346,363,364],{},"WHERE name IN (\n",[346,366,367],{"class":348,"line":228},[346,368,369],{},"  'wal_level',\n",[346,371,372],{"class":348,"line":103},[346,373,374],{},"  'max_replication_slots',\n",[346,376,377],{"class":348,"line":245},[346,378,379],{},"  'max_wal_senders'\n",[346,381,383],{"class":348,"line":382},7,[346,384,385],{},");\n",[60,387,388,398],{"start":228},[24,389,390,391,394,395,71],{},"Confirm ",[108,392,393],{},"wal_level"," is ",[108,396,397],{},"logical",[24,399,400,401,71],{},"Complete the publication, slot, and stream setup in ",[44,402,53],{"href":52},[55,404,406],{"id":405},"validation-checklist","Validation checklist",[60,408,409,416,422,425,434],{},[24,410,411,412,415],{},"Test the Supabase connection from the ",[44,413,209],{"href":414},"\u002Fdocs\u002Fdatabase-explorer\u002F"," sidebar or from the connection editor.",[24,417,418,419,421],{},"Open it in ",[44,420,209],{"href":414}," and confirm schemas and tables are visible.",[24,423,424],{},"If the connection fails from an IPv4-only environment, switch from Direct connection to the Supabase Session pooler URI.",[24,426,427,428,431,432,71],{},"If using CDC, run ",[108,429,430],{},"SHOW wal_level"," and confirm it returns ",[108,433,397],{},[24,435,436],{},"If using CDC, avoid the Supabase Transaction pooler because it is designed for short-lived application queries, not long-lived replication sessions.",[55,438,440],{"id":439},"related-docs","Related docs",[21,442,443,447,451,455],{},[24,444,445],{},[44,446,47],{"href":46},[24,448,449],{},[44,450,53],{"href":52},[24,452,453],{},[44,454,310],{"href":309},[24,456,457],{},[44,458,461],{"href":459,"rel":460},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Freference\u002Fpostgres\u002Fconnection-strings",[69],"Supabase: Connect to your database",[463,464,465],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":122,"searchDepth":355,"depth":355,"links":467},[468,469,470,471,472,473,474],{"id":57,"depth":355,"text":58},{"id":136,"depth":355,"text":137},{"id":200,"depth":355,"text":201},{"id":263,"depth":355,"text":264},{"id":314,"depth":355,"text":315},{"id":405,"depth":355,"text":406},{"id":439,"depth":355,"text":440},"Configure Supabase-hosted PostgreSQL for DBConvert Streams connection, Data Explorer, Load, and CDC workflows.","md",{},false,"\u002Fdocs\u002Fconnections\u002Fsupabase-postgresql",null,{"title":5,"description":475},"docs\u002Fconnections\u002Fsupabase-postgresql","FyNjdheVsK-G5kLg9f3lk86NKQvF3hx1W0WykyMMl5A",1783896283535]