Skip to main content

PostgreSQL schema evolution with built-in multi-agent coordination ๐Ÿ“

Project description

Confiture ๐Ÿ“

PostgreSQL migrations with multi-agent coordination and 4 flexible strategies

Build fresh databases in <1 second. Zero-downtime migrations. Multi-agent conflict detection. Production data sync with PII anonymization.

PyPI Tests Python 3.11+ PostgreSQL 12+ License: MIT


Why Confiture?

Problem: Traditional migration tools replay every migration on every build (slow, brittle, maintains technical debt).

Solution: DDL files are the single source of truth. Just execute your schema once. Fresh databases in <1 second.

Multi-Agent Safe: Automatic conflict detection prevents teams and agents from stepping on each other.


Quick Start

Installation

pip install fraiseql-confiture

Basic Usage

# Initialize project
confiture init

# Write schema DDL files
vim db/schema/10_tables/users.sql

# Build database (<1 second)
confiture build --env local

# Generate and apply migrations
confiture migrate generate --name "add_bio"
confiture migrate up

Team Workflow (Multi-Agent)

# Register intention before making changes
confiture coordinate register --agent-id alice --tables-affected users

# Check for conflicts (by other agent)
confiture coordinate check --agent-id bob --tables-affected users
# โš ๏ธ Conflict: alice is working on 'users'

# Complete when done
confiture coordinate complete --intent-id int_abc123

Core Features

๐Ÿ› ๏ธ Four Migration Strategies

Strategy Use Case Command
Build from DDL Fresh DBs, testing confiture build --env local
Incremental Existing databases confiture migrate up
Production Sync Copy prod data (with anonymization) confiture sync --from production --anonymize users.email
Zero-Downtime Complex migrations via FDW confiture migrate schema-to-schema

๐Ÿค Multi-Agent Coordination

  • โœ… Automatic conflict detection
  • โœ… Intent registration and tracking
  • โœ… JSON output for CI/CD
  • โœ… <10ms per operation

๐ŸŒฑ Seed Data Management

  • โœ… Sequential execution (solves PostgreSQL parser limits on 650+ row files)
  • โœ… Per-file savepoint isolation for error recovery
  • โœ… Continue-on-error mode (skip failed files)
  • โœ… Prep-seed validation (5-level orchestrator)
  • โœ… 5-level validation (static โ†’ full execution)
  • โœ… Catch NULL FKs before production
  • โœ… Pre-commit safe (Levels 1-3)
  • โœ… Database validation with SAVEPOINT safety

๐Ÿ” Git-Aware Validation

  • โœ… Detect schema drift vs. main branch
  • โœ… Enforce migrations for DDL changes
  • โœ… Pre-commit hook support

๐Ÿ”ง Developer Experience

  • โœ… Dry-run mode (analyze before applying)
  • โœ… Migration hooks (pre/post)
  • โœ… Schema linting
  • โœ… PII anonymization
  • โœ… Optional Rust extension
  • โœ… Python 3.11, 3.12, 3.13

Documentation

Getting Started: docs/getting-started.md

Guides:

API Reference: docs/reference/

Examples: examples/


Project Status

โœ… v0.4.0 (February 4, 2026) - RELEASED

Phase 9 Addition (v0.4.0):

  • โœ… Sequential seed execution (solves PostgreSQL parser limits on 650+ row files)
  • โœ… Per-file savepoint isolation for error recovery
  • โœ… Continue-on-error mode for partial seeding
  • โœ… 29 new tests for seed workflow
  • โœ… Comprehensive documentation with 8 examples
  • โœ… Real database integration testing

What's Implemented:

  • โœ… All 4 migration strategies
  • โœ… Sequential seed execution with savepoints (NEW in v0.4.0)
  • โœ… Multi-agent coordination (production-ready, 123+ tests)
  • โœ… Prep-seed validation (5 levels, 98+ tests)
  • โœ… Git-aware schema validation
  • โœ… Schema diff detection
  • โœ… CLI with rich output
  • โœ… Comprehensive tests (4,100+)
  • โœ… Complete documentation

โš ๏ธ Beta Software: All features implemented and tested, but not yet used in production. Use in staging/development first.


Contributing

git clone https://github.com/fraiseql/confiture.git
cd confiture
uv sync --all-extras
uv run pytest

See CONTRIBUTING.md and CLAUDE.md.


Author & License

Vibe-engineered by Lionel Hamayon ๐Ÿ“

MIT License - Copyright (c) 2025 Lionel Hamayon


Making jam from strawberries, one migration at a time. ๐Ÿ“โ†’๐Ÿฏ

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fraiseql_confiture-0.4.3.tar.gz (1.3 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

fraiseql_confiture-0.4.3-cp314-cp314-win_amd64.whl (678.7 kB view details)

Uploaded CPython 3.14Windows x86-64

fraiseql_confiture-0.4.3-cp313-cp313-win_amd64.whl (678.7 kB view details)

Uploaded CPython 3.13Windows x86-64

fraiseql_confiture-0.4.3-cp313-cp313-manylinux_2_28_x86_64.whl (763.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

fraiseql_confiture-0.4.3-cp313-cp313-macosx_11_0_arm64.whl (725.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

fraiseql_confiture-0.4.3-cp312-cp312-win_amd64.whl (678.7 kB view details)

Uploaded CPython 3.12Windows x86-64

fraiseql_confiture-0.4.3-cp312-cp312-manylinux_2_28_x86_64.whl (763.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

fraiseql_confiture-0.4.3-cp312-cp312-macosx_11_0_arm64.whl (725.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

fraiseql_confiture-0.4.3-cp311-cp311-win_amd64.whl (678.4 kB view details)

Uploaded CPython 3.11Windows x86-64

fraiseql_confiture-0.4.3-cp311-cp311-manylinux_2_28_x86_64.whl (765.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

fraiseql_confiture-0.4.3-cp311-cp311-macosx_11_0_arm64.whl (725.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

Details for the file fraiseql_confiture-0.4.3.tar.gz.

File metadata

  • Download URL: fraiseql_confiture-0.4.3.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fraiseql_confiture-0.4.3.tar.gz
Algorithm Hash digest
SHA256 9447ea726322ae76e038872d823b09f0f8ca509d9daefcb43c4b17ba4b393d9b
MD5 ecc524757a0bf5b73d45b17173275538
BLAKE2b-256 00d8795e72747fe874813be48655b77468b9cc8dacd972decf272e4dcfb96caa

See more details on using hashes here.

File details

Details for the file fraiseql_confiture-0.4.3-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: fraiseql_confiture-0.4.3-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 678.7 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fraiseql_confiture-0.4.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 df03d9350adeca36f5b5d2175d71f1f5e458d0b64061a79a6d3a4ba1b18694ff
MD5 c90880450b7c8701aaff4dd286b01a6c
BLAKE2b-256 e19586c96f9881bc0593f035356ce50f1b1870b48d747ef77d97478d1acdde29

See more details on using hashes here.

File details

Details for the file fraiseql_confiture-0.4.3-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: fraiseql_confiture-0.4.3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 678.7 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fraiseql_confiture-0.4.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4be205ad7ed4a2f28ba071d0af075b45d7ef2956e0afe08e9a9044fecec3c15c
MD5 3ea55411c8bc44ea43f7db7362c78701
BLAKE2b-256 70101f8ab5099431b9a38cacd66ab49bd84fb26603c77d8c157993ec3f32ca02

See more details on using hashes here.

File details

Details for the file fraiseql_confiture-0.4.3-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

  • Download URL: fraiseql_confiture-0.4.3-cp313-cp313-manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 763.8 kB
  • Tags: CPython 3.13, manylinux: glibc 2.28+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fraiseql_confiture-0.4.3-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5e2ea4fbf1b032c0b2e9af05f109f2304d1d7ffdb33cb9eddd4450808163fca6
MD5 c6018d91ab2f435fc284f9d41c40f598
BLAKE2b-256 0eac3cd6c77b9cd3cd7b72c1ac27263c1508ebbebd09bf4c210b70d8a8e80dce

See more details on using hashes here.

File details

Details for the file fraiseql_confiture-0.4.3-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

  • Download URL: fraiseql_confiture-0.4.3-cp313-cp313-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 725.4 kB
  • Tags: CPython 3.13, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fraiseql_confiture-0.4.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ee8ad95f042ace6c4d84602f859072fb1befca32c28c319fb126970d3cf893a0
MD5 bba8c618770b26f854d6316a91ab20c2
BLAKE2b-256 4d623a3bb755fddbd9e5202a4c62b429b75951b65bffcb1cc310ac781cf2c3df

See more details on using hashes here.

File details

Details for the file fraiseql_confiture-0.4.3-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: fraiseql_confiture-0.4.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 678.7 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fraiseql_confiture-0.4.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b572495482e477207abf449b0829f57244f5ed4bae5468137ea03134bce34992
MD5 4048295067d744889a712c45e5af0618
BLAKE2b-256 d0b521b7f3db968e6d56c0e4354cf105af29e15ad97147ca2ee7189a16a303c2

See more details on using hashes here.

File details

Details for the file fraiseql_confiture-0.4.3-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

  • Download URL: fraiseql_confiture-0.4.3-cp312-cp312-manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 763.9 kB
  • Tags: CPython 3.12, manylinux: glibc 2.28+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fraiseql_confiture-0.4.3-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 72cc1ac2e3366eed2deb3ede9e6a532fa1e7c927581051ead17776b48d12f557
MD5 60b71c6cf7cfff0c69344484591a504d
BLAKE2b-256 10ae1cdc0a83f312228b6fb000819529a1b1c0722d8c170ba751a88e6ee923cd

See more details on using hashes here.

File details

Details for the file fraiseql_confiture-0.4.3-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

  • Download URL: fraiseql_confiture-0.4.3-cp312-cp312-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 725.3 kB
  • Tags: CPython 3.12, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fraiseql_confiture-0.4.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4bb7b8337b082d1bf1bc7618848e362c1a5b8378e1ed1e2a11cafd02211b7861
MD5 c9d63ff8f56c5196d49b0c668509548a
BLAKE2b-256 88f640ccc8e6658813150640921abb43ccfea22472cfed1ea24616590ae0bf46

See more details on using hashes here.

File details

Details for the file fraiseql_confiture-0.4.3-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: fraiseql_confiture-0.4.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 678.4 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fraiseql_confiture-0.4.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f20ca528af419ea2571315add4f3d6a6f2b74a99b3eda2a2642ef15c5fa97615
MD5 2d5d2795b8ef6cbf8fc0446aa9e1689f
BLAKE2b-256 d6536d21199e6db5709c723e1363751e6fc1d0139ffb625087836bf11f5121cb

See more details on using hashes here.

File details

Details for the file fraiseql_confiture-0.4.3-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

  • Download URL: fraiseql_confiture-0.4.3-cp311-cp311-manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 765.3 kB
  • Tags: CPython 3.11, manylinux: glibc 2.28+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fraiseql_confiture-0.4.3-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c3f96beab0302e8aab66059665f400db67ba36f42f2cccfee8537afc3acc0858
MD5 c9df97df6c5cf50ca82bc52b967393a4
BLAKE2b-256 a037f5cc2e666190417664583d7fd8a89a22d95347ac8c6f09190dca548355a9

See more details on using hashes here.

File details

Details for the file fraiseql_confiture-0.4.3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

  • Download URL: fraiseql_confiture-0.4.3-cp311-cp311-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 725.6 kB
  • Tags: CPython 3.11, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fraiseql_confiture-0.4.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ddd213034fcd6eafe247a8057514dd97e3f7dbce8b25d6b29e70564e8a6b0b83
MD5 d798fbefe8dfda239f67c91683d0b121
BLAKE2b-256 1aacedd18ed2f1dd04ca62aadd32f5cfa59e01cecbe4c25090d602ae590a7e60

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page