mirror of
https://github.com/supabase/supabase.git
synced 2026-10-05 09:25:06 +03:00
## Problem During pipeline creation, Studio did not show how an existing Postgres publication handles partitioned tables. The checkbox in the new-publication sheet also made the two possible modes harder to compare. Resolves [DEPR-675](https://linear.app/supabase/issue/DEPR-675/show-and-edit-postgres-partition-handling-for-publications). ## Solution Replace the checkbox in the new-publication sheet with a two-option dropdown. The default remains “Use parent table identity”. For an existing publication, append its partition-handling mode to the Publication field description in the pipeline creation sheet. This shows the current setting without presenting it as an editable pipeline option. Changing an existing publication’s setting is outside this PR. | Existing Publication Selection | | --- | | <img width="1260" height="224" alt="CleanShot 2026-09-28 at 12 52 10@2x" src="https://github.com/user-attachments/assets/240d7c23-d226-40b9-8d27-a359c8ae4b75" /> | | _Loading_ | | <img width="1238" height="198" alt="CleanShot 2026-09-28 at 12 52 00@2x" src="https://github.com/user-attachments/assets/36c8b1de-eb47-4f76-890d-19d0f33a75a1" /> | | _One of two values_ | | New Publication Creation | | --- | | <img width="832" height="660" alt="CleanShot 2026-09-28 at 12 52 33@2x" src="https://github.com/user-attachments/assets/c1108c3a-d65b-4d20-b1a8-7e0b68fe5e87" /> | | _One of two values_ | | <img width="840" height="650" alt="CleanShot 2026-09-28 at 12 52 40@2x" src="https://github.com/user-attachments/assets/6a2c23d9-12d5-4949-91b1-3867b60ccdd5" /> | | _Second of two values_ | ## Review instructions 1. Open the pipeline creation sheet and choose to create a new publication. Confirm that Postgres partition handling offers “Use parent table identity” and “Replicate each partition separately”, with the former selected by default. 2. Select each option in turn and confirm that the new publication is created with the selected mode. 3. Select an existing publication and confirm that its partition-handling mode appears in the description beneath Publication. Switch publications and confirm that the description updates. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * The replication destination form explains whether the selected publication uses the parent table’s identity or replicates partitions separately. It also shows when publication details are loading or unavailable. * When creating a publication, choose how partitioned tables are handled: use the parent table’s identity or replicate each partition separately. * **Tests** * Added coverage for publication guidance, loading and unavailable states, and partition-handling choices. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Writing components
Where to create your components
- For components that declare the general structure and layout of a page:
/components/layouts/xxx
- For components that are tightly coupled to a specific interface:
/components/interfaces/xxx
- For components that are meant to be reusable across multiple pages:
/components/ui/xxx
- Note: We're gradually moving files out of the
to-be-cleanedfolder into the respective folders as we refactor
Component structure
- If a component has constants and utility methods that are tightly coupled to itself, keep them close to the component and enclose them in a folder with an
index.tsxas an entry point - Otherwise it can just be a file on its own
- For example:
-
components/ui - SampleComponentA - SampleComponentA.tsx - SampleComponentA.constants.ts - SampleComponentA.utils.ts - SampleComponentA.types.ts - index.ts - SampleComponentB.tsx
-
Template for building components
// Declare the prop types of your component
interface ComponentAProps {
sampleProp: string
}
// Name your component accordingly — use a named export, not a default export
export const ComponentA = ({ sampleProp }: ComponentAProps) => {
return <div>ComponentA: {sampleProp}</div>
}