Compare two schemas on Linux

Aperta
#3,656 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
38/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
postgresql, swift
Ambito
databases, desktop

Direzione di ricerca

Read linux/ROADMAP.md and the Structure changes section of linux/docs/adding-drivers.md; compare the existing macOS implementation in features/compare-sync.mdx for context. The issue proposes first deciding whether schema diff belongs in the backlog, then implementing comparison and script generation for Linux. Done means PostgreSQL schemas differing by a column and index produce both differences, and running the generated script on the target makes a subsequent comparison empty.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

enhancement platform-linux
Problem

The Linux app cannot compare two schemas. linux/ROADMAP.md, Backlog, Ideas lists "schema diff and data sync between connections" as not committed. The macOS app has both (features/compare-sync.mdx).

Checking that staging matches production today means opening Show CREATE TABLE for each table on both connections and reading them side by side.

Proposed solution
  • Decide whether schema diff moves from Ideas into the backlog, and record it in linux/ROADMAP.md. Data sync can stay an idea.
  • If yes, a first version:
    • Compare Schemas between two connections of the same engine, or two schemas on one connection.
    • A list of tables, columns, indexes and foreign keys that were added, removed or changed, built from the table definitions the drivers already fetch (linux/docs/adding-drivers.md, section 7, Structure changes).
    • Generate Script writes the statements that make the target match, planned by the engine's DdlDialect, so a change the engine cannot make is refused the same way the structure tab refuses it.
    • The script opens in an editor tab, previewed and never run on its own, with data loss marked as the structure review marks it.
  • Comparing across engines is out of the first version.

Done means: two PostgreSQL schemas that differ by a column and an index show both differences, and the generated script, run on the target, makes the next comparison come back empty.

Alternatives considered

Compare Show CREATE TABLE output by hand, or with a text diff tool on two dumps.

Platform

Linux

Related database type

N/A / General

Lingua principale
Swift
Stelle
6.2k
Fork
412
Merge medio
3h 56m
PR unite (30g)
669

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di TableProApp/TablePro

Tutte le issue di TableProApp/TablePro

Issue simili

Altre issue su Swift

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.