⬡  Safe schema evolution · PostgreSQL

Les migrations de schéma,
enfin prouvables.

Catrust fait évoluer vos schémas critiques sans écrire de SQL : migration déclarée, rollback exact, validation avant production.

Zéro script SQL Rollback mathématiquement exact RGPD-ready 100 % Rust
catrust — migration v1 → v2
# Une migration = un mapping déclaré. Pas de scripts, pas de prière.
$ catrust sigma --schema company_v1.cql --mapping rebrand.cql --instance prod.cqli
✓ 1 248 302 lignes migrées vers CompanyV2 — FKs remappées, 0 orpheline

# Deux semaines plus tard : « remontre-moi ces données en v1 »
$ catrust delta --schema company_v1.cql --mapping rebrand.cql --instance live_v2.cqli
✓ Vue v1 exacte reconstruite — y compris les lignes ajoutées après migration
105 Mlignes scannées / seconde
93 mssnapshot d'1 M de lignes
0script SQL à écrire
373tests, zéro échec
Pourquoi Catrust

Trois garanties que les scripts SQL
ne vous donneront jamais

Les outils classiques déploient des scripts et espèrent. Catrust déclare la transformation et la prouve avant de toucher à la production.

🗺️

Migration déclarée

Vous décrivez la correspondance entre l'ancien schéma et le nouveau. Catrust calcule la migration des données — clés étrangères remappées automatiquement.

mapping Rebrand : V1 -> V2 {
  entities  Employee -> Staff
  attributes emp_name -> full_name
}
↩️

Rollback exact

Le même mapping fournit le retour arrière — sans down-script. Même les lignes écrites après la migration sont restituées dans l'ancienne structure.

$ catrust delta --mapping rebrand.cql
✓ vue v1 exacte — 0 perte
🛡️

Validation avant prod

Intégrité référentielle, contraintes, dérive de schéma : les risques sont détectés avant l'exécution, pas découverts en production un vendredi soir.

$ catrust sigma-validate …
✓ FKs · shape · drift : OK
Comment ça marche

De la v1 à la v2 en quatre étapes

Le parcours exact de notre démo interactive — deux minutes, dans votre navigateur.

Modélisez

Votre schéma est un objet formel — entités, clés étrangères, attributs — rendu en diagramme live.

Interrogez

Les requêtes traversent les FKs avec un point : e.dept.dept_name. Aucun JOIN à écrire.

Migrez Σ

Déclarez le mapping v1 → v2, Catrust migre les données en un clic. Zéro SQL écrit.

Revenez Δ

Rollback prouvé par construction : Σ et Δ sont mathématiquement adjoints.

Dérouler la démo guidée →
Comparaison

Face à Flyway, Liquibase et dbt

FonctionnalitéCatrustFlywayLiquibasedbt
ParadigmeMapping de schémas vérifiableScripts SQL versionnésChangelogs XML/YAMLModèles SQL Jinja
RollbackExact, dérivé du mappingScript undo manuelrollback changeSetNon natif
ValidationFormelle, avant exécutionAucune avant exécutionHash + checksumTests post-exécution
Dépendance SQLZéro SQL100 % SQL100 % SQL100 % SQL
Snapshot 1 M lignes93 ms (13,5×)
LignageJournal automatiqueNonChangelogDAG de modèles
Intégrations

Quatre protocoles, un seul moteur

Gardez vos outils : psql, JDBC, pandas, Polars, DuckDB — ou pilotez Catrust depuis vos scripts et vos agents LLM.

TCP NDJSON — API native pgwire — compatible PostgreSQL Arrow Flight — pandas · Polars HTTP — Catrust Studio MCP — agents LLM

Python, zéro dépendance

from catrustdb import connect
db = connect(port=7474)
db.load(schema="company_v1",
        dataset=payload)
rows = db.query("employees.limit(10)")

Vos outils SQL habituels

psql -h localhost -p 5433
SELECT * FROM Employee LIMIT 10;

Analytique zéro-copie

import pyarrow.flight as fl
client = fl.connect("grpc://localhost:32100")
df = client.do_get(ticket)
       .read_all().to_pandas()
Démarrage rapide

En production locale en 30 secondes

🐳 Docker

docker run -p 7878:7878 \
  catrustdb/catrust:latest
# Studio → localhost:7878

⚙️ CLI

catrust serve --schema mon.cql
# Studio web + API HTTP

🐍 Python

pip install catrustdb
from catrustdb import connect
db = connect(port=7474)
db.apply_migration("RenameV1V2")

Les binaires publics sont temporairement retirés — voir la page de téléchargement.

Prêt à migrer sans peur ?

Déroulez la démo guidée en deux minutes — schéma, requête, migration Σ, rollback Δ. Sans installation, sans inscription.