Add replicated tables and safely apply schema changes
Postgres logical replication copies row changes, not schema changes. Apply DDL on both the publisher and ParadeDB, and create or rebuild ParadeDB indexes locally on the subscriber.
Adding New Tables
When you want ParadeDB to index a new table:
Apply the new table DDL on the publisher
Apply the same DDL on ParadeDB
Make sure the publication includes the table
Refresh the subscription
Build a ParadeDB index on ParadeDB if the table should be searchable
Whether step 3 is manual depends on how the publication was defined. If the
publication uses FOR ALL TABLES, the new table is included automatically. If
it uses FOR TABLES IN SCHEMA ..., new tables in those schemas are included
automatically. If it was created from an explicit table list, add the table
manually. If you do not want the table on ParadeDB, do not include it in the
publication.
-- On the publisherALTER PUBLICATION app_search_pub ADD TABLE public.new_table;-- On ParadeDBALTER SUBSCRIPTION app_search_sub REFRESH PUBLICATION;
Changing Indexed Columns
If you add or remove a column that is part of a ParadeDB index:
Apply the table change on both the publisher and ParadeDB
Let replication catch up again
Rebuild the ParadeDB index on ParadeDB
See Reindexing for the ParadeDB index rebuild
workflow.
Rolling Out DDL Safely
In practice, most teams do this through their existing migration runner or
framework tooling, whether that is Rails migrations, Django migrations, Prisma
Migrate, or another migration system.For additive changes such as ADD COLUMN, the safest rollout is usually:
Apply the additive DDL on ParadeDB first
Apply the same DDL on the publisher
Let replication continue normally
Rebuild any ParadeDB indexes whose indexed column list changed
This follows Postgres’s recommendation to apply additive schema changes on the
subscriber first whenever possible, which avoids intermittent apply failures.
Logical replication can tolerate extra columns on the subscriber, so adding a
column on ParadeDB first will not stop replication by itself. Those extra
subscriber-only columns use their local default value, or NULL if no default
is defined, until the publisher starts sending that column.If the new column must be NOT NULL, give it a compatible default on both
sides or use a coordinated maintenance window. Otherwise replicated INSERT
operations can fail before the publisher-side change is in place.If the change is not additive, such as a column rename, drop, or incompatible
type change, use a short maintenance window, pause writes to the affected
tables if possible, and coordinate both sides explicitly:
-- On SubscriberALTER SUBSCRIPTION marketplace_sub DISABLE;ALTER TABLE mock_items RENAME COLUMN category TO product_category;-- On PublisherALTER TABLE mock_items RENAME COLUMN category TO product_category;-- Back on SubscriberALTER SUBSCRIPTION marketplace_sub ENABLE;
Do not leave a disabled subscription in place longer than necessary. The
logical slot on the publisher can continue retaining WAL while the subscriber
is disabled.
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"ParadeDB","colors":{"primary":"#4f46e5","light":"#4f46e5","dark":"#818cf8"},"logo":{"light":"https://mintcdn.com/paradedb/X75hU2Xqk72Fhmya/logo/light.svg?fit=max\u0026auto=format\u0026n=X75hU2Xqk72Fhmya\u0026q=85\u0026s=ac5ce043daf4c85d48b56bcd7f69c14f","dark":"https://mintcdn.com/paradedb/X75hU2Xqk72Fhmya/logo/dark.svg?fit=max\u0026auto=format\u0026n=X75hU2Xqk72Fhmya\u0026q=85\u0026s=2750fde357923cc6615d68f74451aa1e","href":"https://www.paradedb.com"},"favicon":"https://mintcdn.com/paradedb/EnFi_28R6H66KMiU/favicon.png?fit=max\u0026auto=format\u0026n=EnFi_28R6H66KMiU\u0026q=85\u0026s=f066fc45b5ff39c3b46b210cbcbb5a06","appearance":{"strict":false},"navbar":{"links":[{"href":"https://github.com/paradedb/paradedb","type":"github"},{"href":"https://app.paradedb.com","label":"Log In"}],"primary":{"type":"button","label":"Sign Up","href":"https://auth.paradedb.com/sign-up"}},"footer":{"socials":{"github":"https://github.com/paradedb/paradedb","twitter":"https://x.com/paradedb","linkedin":"https://www.linkedin.com/company/paradedb","slack":"https://paradedb.com/slack"}},"seo":{"metatags":{"charset":"UTF-8","viewport":"width=device-width, initial-scale=1.0","keywords":"paradedb, postgres, search, analytics, bm25, full-text search, vector search, semantic search, hybrid search, faceted search, columnar, olap","author":"ParadeDB","google":"notranslate","generator":"Mintlify","theme-color":"#000000","color-scheme":"light dark","referrer":"origin","rating":"general","revisit-after":"7 days","language":"en","copyright":"ParadeDB, Inc. 2026","reply-to":"support@paradedb.com","distribution":"global","coverage":"Worldwide","category":"Technology","target":"all","HandheldFriendly":"True","MobileOptimized":"320","apple-mobile-web-app-capable":"yes","apple-mobile-web-app-status-bar-style":"black","apple-mobile-web-app-title":"ParadeDB Docs","og:type":"website","og:locale":"en_US","og:description":"You should just use Postgres.","og:image":"https://www.paradedb.com/opengraph-image.png","og:image:alt":"ParadeDB: Just use Postgres","twitter:card":"summary_large_image","twitter:site":"@paradedb","twitter:creator":"@paradedb","twitter:description":"You should just use Postgres.","twitter:image":"https://www.paradedb.com/twitter-image.png","twitter:image:alt":"ParadeDB: Just use Postgres"},"indexing":"navigable"},"banner":{"content":"[ParadeDB Cloud is now available in private preview](https://auth.paradedb.com/sign-up)","dismissible":false},"contextual":{"options":["copy","mcp","cursor","vscode","perplexity","chatgpt","claude",{"title":"Share on X","description":"Share this page on X","icon":"x","href":{"base":"https://x.com/intent/tweet","query":[{"key":"text","value":"Check out this ParadeDB doc!"},{"key":"url","value":"https://www.paradedb.com/docs$path"}]}}],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"paradedb","hasAudioNarration":false,"actualSubdomain":"paradedb","customDomains":["www.paradedb.com"],"gitSource":{"type":"github","owner":"paradedb","repo":"paradedb","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"edits":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6af7ca78d0d65120655df3d5","clientVersion":"0.0.4142","searchFilterCounts":[{"language":"default","tag":"Reference","count":84},{"language":"default","tag":"Full-Text / Lexical Search","count":46},{"language":"default","tag":"Operate","count":27},{"language":"default","tag":"Text Analysis","count":25},{"language":"default","tag":"Aggregations","count":16},{"language":"default","tag":"Query Types","count":13},{"language":"default","tag":"Tokenizers","count":13},{"language":"default","tag":"Indexing","count":11},{"language":"default","tag":"Deployment","count":10},{"language":"default","tag":"Metrics","count":8}]},"assistantConfig":{},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#search-bar-entry{visibility:visible}#banner{background-color:#4f46e5!important;background-image:none!important;border-bottom:0!important;display:flex;height:2.75rem!important;max-height:none!important;min-height:2.75rem;padding:0!important}@media (min-width: 640px){#banner{height:3rem!important;min-height:3rem}}#banner>div{align-items:center;backdrop-filter:blur(12px);background-color:rgb(255 255 255 / 10%);border-bottom:1px solid rgb(255 255 255 / 20%)!important;box-shadow:inset 0 -1px rgb(255 255 255 / 20%);display:flex;justify-content:center;box-sizing:border-box;height:100%;margin:0!important;padding:0.75rem 1rem;width:100%}#banner p{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;height:100%;margin:0!important;max-width:100%;min-width:0;font-size:0.75rem;line-height:1rem}#banner a{color:#ffffff!important;display:inline-flex;align-items:center;font-size:inherit;font-weight:500;gap:0.5rem;line-height:inherit;text-decoration:none}#banner a:hover{color:#ffffff!important}#banner a::after{content:\"->\";display:inline-block;flex:none;transition:transform 160ms ease}#banner a:hover::after{transform:translateX(2px)}#banner .banner-badge{display:none;flex:none;background-color:rgb(255 255 255 / 10%);padding:0.25rem 0.625rem;font-size:0.625rem;font-weight:600;line-height:1;text-transform:uppercase}@media (min-width: 640px){#banner p{font-size:0.875rem;line-height:1.25rem}#banner .banner-badge{display:inline-flex;font-size:0.75rem}}.topbar-right-container nav ul{gap:1.25rem!important}.navbar-link>a{background:transparent!important;border-radius:0!important;color:rgb(30 41 59 / 85%)!important;font-size:0.875rem!important;line-height:1.25rem!important;padding:0.25rem 0.125rem!important;transition:color 160ms ease}.navbar-link>a:hover{background:transparent!important;color:#4f46e5!important}.dark .navbar-link>a{color:rgb(255 255 255 / 86%)!important}.dark .navbar-link>a:hover{color:#ffffff!important}img.nav-logo{height:2rem!important}a.nav-tabs-item{font-size:1.0625rem!important}a.nav-tabs-item span[class*=\"h-4\"]{height:1.25rem!important;width:1.25rem!important}.card{border-radius:0!important}#pagination>a{border:0;border-radius:0}.architecture-diagram{--architecture-node-inset: 18px;--architecture-surface: #ffffff;--architecture-background: #f9fafc;--architecture-border: #dfe3eb;--architecture-text: #1e293b;--architecture-muted: #606d82;--architecture-line: #99a3b5;--architecture-accent: #4f46e5;--architecture-accent-soft: #eeedff;--architecture-index: #f6f5ff;--architecture-index-border: #ccc9f3;--architecture-divider: #e0def4;--architecture-shadow:\n 0 1px 2px rgb(30 27 75 / 4%), 0 4px 12px rgb(30 27 75 / 3%);container-type:inline-size;margin:2.5rem 0;color:var(--architecture-text);font-size:14px;line-height:1.5}.dark .architecture-diagram{--architecture-surface: #17171e;--architecture-background: #101015;--architecture-border: #30303c;--architecture-text: #ececf3;--architecture-muted: #a6a6b9;--architecture-line: #73738c;--architecture-accent-soft: #202028;--architecture-index: var(--architecture-surface);--architecture-index-border: #3e3e4b;--architecture-divider: var(--architecture-border);--architecture-shadow: 0 1px 2px rgb(0 0 0 / 12%), 0 4px 12px rgb(0 0 0 / 8%)}.architecture-diagram svg{display:block;flex:none;stroke-linecap:round;stroke-linejoin:miter}.architecture-app{display:flex;align-items:center;justify-content:center;gap:10px;width:fit-content;margin:0 auto;padding:11px 20px;border:1px solid var(--architecture-border);border-radius:0;background:var(--architecture-surface);box-shadow:var(--architecture-shadow);font-weight:500}.architecture-app svg,.architecture-heading svg{width:22px;height:22px}.architecture-connection{position:relative;display:flex;justify-content:center;height:48px;color:var(--architecture-line)}.architecture-connection svg{width:16px;height:48px}.architecture-connection span{position:absolute;top:50%;transform:translateY(-50%);color:var(--architecture-muted);font-size:12px}.architecture-sql span{left:calc(50% + 14px);font-family:ui-monospace, SFMono-Regular, Menlo, monospace;font-size:12px;letter-spacing:0.04em}.architecture-postgres{padding:22px;border:1px solid var(--architecture-border);border-radius:0;background:var(--architecture-background)}.architecture-database-heading,.architecture-index-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.architecture-database-heading{margin-bottom:22px}.architecture-heading{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:600;letter-spacing:-0.02em}.architecture-database-heading svg{width:1em;height:1em}.architecture-table{display:flex;align-items:center;gap:12px;padding:17px var(--architecture-node-inset);border:1px solid var(--architecture-border);border-radius:0;background:var(--architecture-surface);box-shadow:var(--architecture-shadow)}.architecture-table-icon{width:28px;height:28px;color:var(--architecture-muted)}.architecture-title{font-size:14px;font-weight:600}.architecture-detail{margin-top:4px;color:var(--architecture-muted);font-size:12px;text-wrap:balance}.architecture-writes{justify-content:flex-start;padding-left:calc(var(--architecture-node-inset) + 7px)}.architecture-writes span{left:calc(var(--architecture-node-inset) + 41px)}.architecture-index{overflow:hidden;border:1px solid var(--architecture-index-border);border-radius:0;background:var(--architecture-index);box-shadow:var(--architecture-shadow)}.architecture-index-heading{padding:17px var(--architecture-node-inset);border-bottom:1px solid var(--architecture-divider)}.architecture-index-heading .architecture-heading{gap:12px}.architecture-heading .architecture-brand{width:22px;height:22px;margin:3px;color:var(--architecture-accent)}.architecture-extension{flex:none;padding:3px 7px;border:1px solid var(--architecture-divider);border-radius:0;background:var(--architecture-accent-soft);color:var(--architecture-text);font-family:ui-monospace, SFMono-Regular, Menlo, monospace;font-size:11px}.architecture-structures{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));padding:24px 0 22px}.architecture-structure{padding:0 6px;text-align:center}.architecture-structure+.architecture-structure{border-left:1px solid var(--architecture-divider)}.architecture-structure svg{width:56px;height:40px;margin:0 auto 14px;color:var(--architecture-accent)}@container (max-width: 380px){.architecture-postgres{--architecture-node-inset: 14px;padding:16px}.architecture-table{padding-block:15px}.architecture-index-heading{flex-wrap:wrap;gap:6px 12px;padding-block:15px}.architecture-structures{grid-template-columns:1fr;padding:0 14px}.architecture-structure{display:grid;grid-template-columns:48px 1fr;column-gap:16px;padding:14px 0;text-align:left}.architecture-structure+.architecture-structure{border-top:1px solid var(--architecture-divider);border-left:0}.architecture-structure svg{grid-row:span 2;align-self:center;width:48px;height:32px;margin:0}}@container (max-width: 320px){.architecture-index-heading{flex-direction:column;align-items:flex-start}.architecture-extension{margin-left:40px}}.architecture-detail-diagram .architecture-svg{width:100%;height:auto;font-family:inherit;font-size:17px;fill:var(--architecture-text)}.architecture-svg-boundary{fill:var(--architecture-background);stroke:var(--architecture-border)}.architecture-svg-surface{fill:var(--architecture-surface);stroke:var(--architecture-border)}.architecture-svg-index{fill:var(--architecture-index);stroke:var(--architecture-index-border)}.architecture-svg-line{fill:none;stroke:var(--architecture-line);stroke-width:1.5}.architecture-svg-rule{fill:none;stroke:var(--architecture-border)}.architecture-svg-title{font-size:18px;font-weight:600;letter-spacing:-0.02em}.architecture-svg-label{fill:var(--architecture-muted);font-size:14px}.architecture-svg-stage-title{font-size:17px;font-weight:600}.architecture-svg-small{font-size:13px}.architecture-detail-diagram .architecture-svg-compact{display:none}@container (max-width: 420px){.architecture-detail-diagram .architecture-svg-wide{display:none}.architecture-detail-diagram .architecture-svg-compact{display:block;max-width:380px;margin:0 auto}}"},{"filePath":"cookie-consent.css","content":"#paradedb-cookie-banner,#paradedb-cookie-preferences{position:fixed;bottom:0;z-index:9999;color:#475569;background:#ffffff;border:1px solid #e2e8f0;font-size:0.8125rem;line-height:1.5}#paradedb-cookie-banner{inset-inline:0;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.5rem}#paradedb-cookie-banner p{margin:0}#paradedb-cookie-banner a{text-decoration:underline}#paradedb-cookie-banner>div{display:flex;gap:0.5rem}#paradedb-cookie-banner button,#paradedb-cookie-preferences{cursor:pointer;padding:0.5rem 1rem;border:1px solid #cbd5e1;min-height:2.5rem;white-space:nowrap}#paradedb-cookie-preferences{left:1rem}#paradedb-cookie-banner button:focus-visible,#paradedb-cookie-banner a:focus-visible,#paradedb-cookie-preferences:focus-visible{outline:2px solid #6366f1;outline-offset:2px}#paradedb-cookie-banner [data-consent=\"true\"]{background:#eef2ff;color:#4338ca;border-color:#c7d2fe}.dark #paradedb-cookie-banner,.dark #paradedb-cookie-preferences{color:#cbd5e1;background:#020617;border-color:#334155}#paradedb-cookie-banner[hidden],#paradedb-cookie-preferences[hidden]{display:none}@media (max-width: 640px){#paradedb-cookie-banner{flex-direction:column;align-items:stretch}#paradedb-cookie-banner button{flex:1}}"}],"page":{"pagePath":"operate/deploy/logical-replication/schema-changes","slug":"/operate/deploy/logical-replication/schema-changes","pageMetadata":{"title":"Schema Changes","description":"Add replicated tables and safely apply schema changes","canonical":"https://www.paradedb.com/docs/operate/deploy/logical-replication/schema-changes","href":"/operate/deploy/logical-replication/schema-changes"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Add replicated tables and safely apply schema changes\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Postgres logical replication copies row changes, not schema changes. Apply DDL on both the publisher and ParadeDB, and create or rebuild ParadeDB indexes locally on the subscriber.`}),`\n`,_jsx(Heading,{level:`2`,id:`adding-new-tables`,children:`Adding New Tables`}),`\n`,_jsx(_components.p,{children:`When you want ParadeDB to index a new table:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Apply the new table DDL on the publisher`}),`\n`,_jsx(_components.li,{children:`Apply the same DDL on ParadeDB`}),`\n`,_jsx(_components.li,{children:`Make sure the publication includes the table`}),`\n`,_jsx(_components.li,{children:`Refresh the subscription`}),`\n`,_jsx(_components.li,{children:`Build a ParadeDB index on ParadeDB if the table should be searchable`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Whether step 3 is manual depends on how the publication was defined. If the\npublication uses `,_jsx(_components.code,{children:`FOR ALL TABLES`}),`, the new table is included automatically. If\nit uses `,_jsx(_components.code,{children:`FOR TABLES IN SCHEMA ...`}),`, new tables in those schemas are included\nautomatically. If it was created from an explicit table list, add the table\nmanually. If you do not want the table on ParadeDB, do not include it in the\npublication.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`sql`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`sql`,children:_jsxs(_components.code,{language:`sql`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`-- On the publisher`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`ALTER`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` PUBLICATION app_search_pub `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`ADD`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` TABLE`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:` public`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`new_table`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`-- On ParadeDB`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`ALTER`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` SUBSCRIPTION app_search_sub REFRESH PUBLICATION;`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`changing-indexed-columns`,children:`Changing Indexed Columns`}),`\n`,_jsx(_components.p,{children:`If you add or remove a column that is part of a ParadeDB index:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Apply the table change on both the publisher and ParadeDB`}),`\n`,_jsx(_components.li,{children:`Let replication catch up again`}),`\n`,_jsx(_components.li,{children:`Rebuild the ParadeDB index on ParadeDB`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/operate/index-maintenance/reindexing`,children:`Reindexing`}),` for the ParadeDB index rebuild\nworkflow.`]}),`\n`,_jsx(Heading,{level:`2`,id:`rolling-out-ddl-safely`,children:`Rolling Out DDL Safely`}),`\n`,_jsx(_components.p,{children:`In practice, most teams do this through their existing migration runner or\nframework tooling, whether that is Rails migrations, Django migrations, Prisma\nMigrate, or another migration system.`}),`\n`,_jsxs(_components.p,{children:[`For additive changes such as `,_jsx(_components.code,{children:`ADD COLUMN`}),`, the safest rollout is usually:`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Apply the additive DDL on ParadeDB first`}),`\n`,_jsx(_components.li,{children:`Apply the same DDL on the publisher`}),`\n`,_jsx(_components.li,{children:`Let replication continue normally`}),`\n`,_jsx(_components.li,{children:`Rebuild any ParadeDB indexes whose indexed column list changed`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`This follows Postgres’s recommendation to apply additive schema changes on the\nsubscriber first whenever possible, which avoids intermittent apply failures.\nLogical replication can tolerate extra columns on the subscriber, so adding a\ncolumn on ParadeDB first will not stop replication by itself. Those extra\nsubscriber-only columns use their local default value, or `,_jsx(_components.code,{children:`NULL`}),` if no default\nis defined, until the publisher starts sending that column.`]}),`\n`,_jsxs(_components.p,{children:[`If the new column must be `,_jsx(_components.code,{children:`NOT NULL`}),`, give it a compatible default on both\nsides or use a coordinated maintenance window. Otherwise replicated `,_jsx(_components.code,{children:`INSERT`}),`\noperations can fail before the publisher-side change is in place.`]}),`\n`,_jsx(_components.p,{children:`If the change is not additive, such as a column rename, drop, or incompatible\ntype change, use a short maintenance window, pause writes to the affected\ntables if possible, and coordinate both sides explicitly:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`sql`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`sql`,children:_jsxs(_components.code,{language:`sql`,numberOfLines:`9`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`-- On Subscriber`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`ALTER`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` SUBSCRIPTION marketplace_sub `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`DISABLE`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`ALTER`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` TABLE`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` mock_items RENAME COLUMN category `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`TO`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` product_category;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`-- On Publisher`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`ALTER`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` TABLE`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` mock_items RENAME COLUMN category `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`TO`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` product_category;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`-- Back on Subscriber`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`ALTER`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` SUBSCRIPTION marketplace_sub `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`ENABLE`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`]})})}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Do not leave a disabled subscription in place longer than necessary. The\nlogical slot on the publisher can continue retaining WAL while the subscriber\nis disabled.`})}),`\n`,_jsxs(_components.p,{children:[`If schema drift has already stopped replication, see `,_jsx(_components.a,{href:`/operate/deploy/logical-replication/monitoring-and-troubleshooting#troubleshooting-apply-failures`,children:`Troubleshooting Apply Failures`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Schema Changes","description":"Add replicated tables and safely apply schema changes","canonical":"https://www.paradedb.com/docs/operate/deploy/logical-replication/schema-changes","href":"/operate/deploy/logical-replication/schema-changes"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Adding New Tables","slug":"adding-new-tables","depth":2,"children":[]},{"title":"Changing Indexed Columns","slug":"changing-indexed-columns","depth":2,"children":[]},{"title":"Rolling Out DDL Safely","slug":"rolling-out-ddl-safely","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/paradedb/1aef07ebece82dbc/override.js","/docs/_mintlify/custom/paradedb/5097c6f27c90a26e/analytics.js"],"subdomain":"paradedb","siteName":"ParadeDB","title":"Schema Changes - ParadeDB","navMaps":{"firstHrefInVersion":{"v0.26.6":{"href":"/operate/deploy/logical-replication/schema-changes","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-09-30T00:08:41.969Z","originalFileLocation":"operate/deploy/logical-replication/schema-changes.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Add replicated tables and safely apply schema changes\">\u003cmeta data-mint-head name=\"keywords\" content=\"paradedb, postgres, search, analytics, bm25, full-text search, vector search, semantic search, hybrid search, faceted search, columnar, olap\">\u003cmeta data-mint-head name=\"application-name\" content=\"ParadeDB\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/paradedb/xZnm2E-sMpJPUBVi/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/paradedb/xZnm2E-sMpJPUBVi/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/paradedb/xZnm2E-sMpJPUBVi/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/paradedb/xZnm2E-sMpJPUBVi/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/paradedb/xZnm2E-sMpJPUBVi/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/paradedb/xZnm2E-sMpJPUBVi/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/paradedb/xZnm2E-sMpJPUBVi/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/paradedb/xZnm2E-sMpJPUBVi/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/paradedb/xZnm2E-sMpJPUBVi/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Schema Changes - ParadeDB\">\u003cmeta data-mint-head property=\"og:description\" content=\"You should just use Postgres.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"ParadeDB\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://www.paradedb.com/docs/operate/deploy/logical-replication/schema-changes\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://www.paradedb.com/opengraph-image.png\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Schema Changes - ParadeDB\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"You should just use Postgres.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://www.paradedb.com/opengraph-image.png\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/paradedb/xZnm2E-sMpJPUBVi/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"ParadeDB Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4f46e5\">\u003cmeta data-mint-head name=\"og:locale\" content=\"en_US\">\u003cmeta data-mint-head name=\"charset\" content=\"UTF-8\">\u003cmeta data-mint-head name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\u003cmeta data-mint-head name=\"author\" content=\"ParadeDB\">\u003cmeta data-mint-head name=\"google\" content=\"notranslate\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"theme-color\" content=\"#000000\">\u003cmeta data-mint-head name=\"color-scheme\" content=\"light dark\">\u003cmeta data-mint-head name=\"referrer\" content=\"origin\">\u003cmeta data-mint-head name=\"rating\" content=\"general\">\u003cmeta data-mint-head name=\"revisit-after\" content=\"7 days\">\u003cmeta data-mint-head name=\"language\" content=\"en\">\u003cmeta data-mint-head name=\"copyright\" content=\"ParadeDB, Inc. 2026\">\u003cmeta data-mint-head name=\"reply-to\" content=\"support@paradedb.com\">\u003cmeta data-mint-head name=\"distribution\" content=\"global\">\u003cmeta data-mint-head name=\"coverage\" content=\"Worldwide\">\u003cmeta data-mint-head name=\"category\" content=\"Technology\">\u003cmeta data-mint-head name=\"target\" content=\"all\">\u003cmeta data-mint-head name=\"HandheldFriendly\" content=\"True\">\u003cmeta data-mint-head name=\"MobileOptimized\" content=\"320\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-capable\" content=\"yes\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\u003cmeta data-mint-head name=\"og:image:alt\" content=\"ParadeDB: Just use Postgres\">\u003cmeta data-mint-head name=\"twitter:creator\" content=\"@paradedb\">\u003cmeta data-mint-head name=\"twitter:image:alt\" content=\"ParadeDB: Just use Postgres\">\u003clink data-mint-head rel=\"canonical\" href=\"https://www.paradedb.com/docs/operate/deploy/logical-replication/schema-changes\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/operate/deploy/logical-replication/schema-changes.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://www.paradedb.com/#organization\",\"name\":\"ParadeDB\",\"url\":\"https://www.paradedb.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/paradedb/X75hU2Xqk72Fhmya/logo/light.svg?fit=max\u0026auto=format\u0026n=X75hU2Xqk72Fhmya\u0026q=85\u0026s=ac5ce043daf4c85d48b56bcd7f69c14f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://www.paradedb.com/docs#website\",\"name\":\"ParadeDB\",\"url\":\"https://www.paradedb.com/docs\",\"publisher\":{\"@id\":\"https://www.paradedb.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://www.paradedb.com/docs/operate/deploy/logical-replication/schema-changes#webpage\",\"url\":\"https://www.paradedb.com/docs/operate/deploy/logical-replication/schema-changes\",\"name\":\"Schema Changes\",\"description\":\"Add replicated tables and safely apply schema changes\",\"dateModified\":\"2026-09-30T00:08:41.969Z\",\"isPartOf\":{\"@id\":\"https://www.paradedb.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://www.paradedb.com/docs/operate/deploy/logical-replication/schema-changes#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://www.paradedb.com/docs/operate/deploy/logical-replication/schema-changes#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Replication\",\"item\":\"https://www.paradedb.com/docs/operate/deploy/self-hosted/high-availability\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Logical Replication\",\"item\":\"https://www.paradedb.com/docs/operate/deploy/logical-replication/getting-started\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Schema Changes\",\"item\":\"https://www.paradedb.com/docs/operate/deploy/logical-replication/schema-changes\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://www.paradedb.com/docs/operate/deploy/logical-replication/schema-changes#article\",\"headline\":\"Schema Changes\",\"name\":\"Schema Changes\",\"description\":\"Add replicated tables and safely apply schema changes\",\"url\":\"https://www.paradedb.com/docs/operate/deploy/logical-replication/schema-changes\",\"mainEntityOfPage\":{\"@id\":\"https://www.paradedb.com/docs/operate/deploy/logical-replication/schema-changes#webpage\"},\"image\":\"https://www.paradedb.com/opengraph-image.png\",\"dateModified\":\"2026-09-30T00:08:41.969Z\",\"publisher\":{\"@id\":\"https://www.paradedb.com/#organization\"},\"isPartOf\":{\"@id\":\"https://www.paradedb.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"ParadeDB\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"ParadeDB\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/docs/operate/deploy/logical-replication/schema-changes.md","siteName":"ParadeDB","nav":{"global":null,"versions":[{"version":"v0.26.6","tabs":[{"tab":"Start","icon":"rocket","pages":[{"title":"Start","href":"/start/introduction"}]},{"tab":"Reference","icon":"book-open","pages":[{"title":"Reference","href":"/reference/overview"}]},{"tab":"Concepts","icon":"lightbulb","pages":[{"title":"Concepts","href":"/concepts/architecture"}]},{"tab":"Operate","icon":"server","pages":[{"title":"ParadeDB Enterprise","href":"/operate/deploy/enterprise"},{"group":"Deployment","pages":[{"title":"Deployment Options","href":"/operate/deploy/overview"},{"title":"ParadeDB Cloud","href":"/operate/deploy/cloud"},{"title":"ParadeDB BYOC","href":"/operate/deploy/byoc"},{"title":"Kubernetes","href":"/operate/deploy/self-hosted/kubernetes"},{"title":"Self-Hosted PostgreSQL","sidebarTitle":"Self-Hosted PostgreSQL","href":"/operate/deploy/self-hosted/extension"},{"group":"PaaS Providers","pages":[{"title":"Railway","href":"/operate/deploy/cloud-platforms/railway"},{"title":"Render","href":"/operate/deploy/cloud-platforms/render"},{"title":"Fly.io","href":"/operate/deploy/cloud-platforms/fly"},{"title":"Dokku","href":"/operate/deploy/cloud-platforms/dokku"},{"title":"DigitalOcean","href":"/operate/deploy/cloud-platforms/digitalocean"}]}]},{"group":"Replication","pages":[{"title":"High Availability","href":"/operate/deploy/self-hosted/high-availability"},{"group":"Logical Replication","pages":[{"title":"Getting Started","sidebarTitle":"Getting Started","href":"/operate/deploy/logical-replication/getting-started"},{"title":"Initial Sync and Indexing","href":"/operate/deploy/logical-replication/bootstrapping"},{"title":"Replication Configuration","description":"Configure publication boundaries, replication capacity, and replica identity","href":"/operate/deploy/logical-replication/configuration"},{"title":"Schema Changes","href":"/operate/deploy/logical-replication/schema-changes"},{"title":"Monitoring and Troubleshooting","description":"Monitor replication health, resolve apply failures, and recover from WAL buildup","href":"/operate/deploy/logical-replication/monitoring-and-troubleshooting"},{"title":"Multi-Database Replication","href":"/operate/deploy/logical-replication/multi-database"}]}]},{"group":"Index Maintenance","pages":[{"title":"Reindexing","href":"/operate/index-maintenance/reindexing"},{"title":"Verify Index Integrity","href":"/operate/index-maintenance/verify-index"}]},{"group":"Performance","pages":[{"title":"How to Tune ParadeDB","href":"/operate/performance-tuning/overview"},{"title":"Index Creation","href":"/operate/performance-tuning/create-index"},{"title":"Read Throughput","href":"/operate/performance-tuning/reads"},{"title":"Write Throughput","href":"/operate/performance-tuning/writes"}]},{"group":"Administration","pages":[{"title":"Upgrading ParadeDB","href":"/operate/deploy/upgrading"}]},{"group":"Continuous Integration","pages":[{"title":"GitHub Actions","href":"/operate/deploy/ci/github-actions"},{"title":"GitLab Pipelines","href":"/operate/deploy/ci/gitlab-pipelines"}]}]},{"tab":"Project","icon":"flag","pages":[{"title":"Project","href":"/project/roadmap"}]}]}]},"basePath":"","title":"Schema Changes - ParadeDB","buildId":"dpl_eBQnj73Q1gDRVNqNsS3Yt9yPkTEW","deploymentId":"dpl_eBQnj73Q1gDRVNqNsS3Yt9yPkTEW","dynamics":["10e4515597"],"chunks":["BannerMarkdown-BEBcJWfW.js","dist-CNS0fiKw.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-BhkiUDTS.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js"]}