fz

migrations collect and apply, doctor, modules, data export and import. It links against your venture's own harness.

With cargo

cargo add cratefield-cli

What it is

fz.

fz links against your venture's compiled-in harness and runs as a bin target inside the venture repo, which is the pattern the venture template ships. That is not packaging preference: a migration collector that guessed at your module list would collect the wrong migrations, and a doctor that guessed at your ports would pass a venture that cannot boot.

fz migrations collect walks the modules in config order and writes files named so that wrangler d1 migrations apply executes them in the right order. The lock file is the part that matters: migrations/.harness-lock.json pins each module/migration-id to its global file name plus a sha256 of its content, so a migration edited after it shipped is a failure rather than a silent divergence between two databases.

Ports

tool — runs outside the request path

Commands

migrations collect, migrations apply, doctor, modules, data export, data import

History

Changelog.

From the crate’s CHANGELOG.md in the harness, as of 0c5560b. 8 versions recorded, newest first. Every published version is on crates.io.

  1. 0.7.2

    crates.ioReleaseDiff

    Other

    • update Cargo.lock dependencies
  2. 0.7.1

    crates.ioReleaseDiff

    Other

    • updated the following local packages: cratefield-core, cratefield-runtime-native, cratefield-adapter-sqlite, cratefield-adapter-postgres, cratefield-push-auth, cratefield-adapter-typesafe, cratefield-adapter-webpush, cratefield-push-wiring, cratefield-client-ts, cratefield-import-supabase, cratefield-tables, cratefield-introspect
6 earlier versions 0.4.0 to 0.7.0
  1. 0.7.0

    crates.ioReleaseDiff

    Other

    • fz doctor: fail on module SQL a venture's dependencies ship but no module declares (migration-not-declared) (#872)
  2. 0.6.2

    crates.ioReleaseDiff

    Other

    • update Cargo.lock dependencies
  3. 0.6.1

    crates.ioReleaseDiff

    Other

    • update Cargo.lock dependencies
  4. 0.6.0

    crates.ioReleaseDiff

    Other

    • Supabase import: plan.json, bare fz import supabase dry run, --apply --plan drift check and target extension preflight (#754)
    • Supabase import: record per-item dispositions (covered/waived) in a file and merge them into the report (#752)
  5. 0.5.0

    crates.ioReleaseDiff

    Changed

    • Breaking: requires cratefield-core 0.8 (was 0.7), and so a minor rather than a patch bump: a venture still on core 0.7 does not pick this release up through a caret requirement and end up with two copies of core (#712).

    Added

    • import-supabase inspect a Supabase project read-only and write the migration report (#658) (#697)

    Other

    • Import users from another provider: bcrypt verified and upgraded on login, import identities, fz auth import (#650) (#700)
  6. 0.4.0

    crates.ioRelease

    Added

    • core breaking name problem type URIs under the venture's own base (#557) (#581)

    Other

    • Route policy: let one module declare a signature verifier per webhook route (#595) (#632)
    • Production readiness fails when a module declares RateLimiter and none is mounted; a missing Workers limiter binding fails closed (#562) (#569)
    • Verify the cratefield-core 0.6.0 release round (#558) and fix a stale client-ts comment in the CLI manifest (#566)

Postgres is applied directly, tracked idempotently in harness_migrations.