Files
ziggie 4b30bed0ac payments/migration1: add external migration test
Add a developer-facing migration_external_test that allows
running the KV→SQL payments migration against a real channel.db
backend to debug migration failures on actual data. The accompanying
testdata README documents how to supply a database file and configure
the test, so users can validate their data and confirm the migration
completes successfully.

The test is skipped by default and meant for manual diagnostics.
2026-02-25 18:52:33 +01:00
..

Payment Migration External Testdata

This directory holds a real channel.db (bbolt) or channel.sqlite file for testing the payments KV to SQL migration locally. You can also point the test at an existing Postgres-backed kvdb instance.

How to use

  1. Copy your channel.db or channel.sqlite file into this folder.

  2. Edit migration_external_test.go:

    // Comment out this line to enable the test
    t.Skipf("skipping test meant for local debugging only")
    
    // Set to your database filename
    const fileName = "channel.db" // or "channel.sqlite"
    
  3. Run the test:

    # For Postgres backend
    go test -v -tags="test_db_postgres" -run TestMigrationWithExternalDB
    

SQLite kvdb source

To migrate from a channel.sqlite file, run with the kvdb_sqlite build tag:

go test -v -tags="test_db_sqlite kvdb_sqlite" \
  -run TestMigrationWithExternalDB

Postgres kvdb source

To migrate from an existing Postgres-backed kvdb instance, edit postgresKVDSN in migration_external_test.go (set it non-empty), then run with the kvdb_postgres build tag:

go test -v -tags="kvdb_postgres test_db_postgres" \
  -run TestMigrationWithExternalDB

Notes

  • The external database is opened read-only.
  • The test creates a fresh SQL database for each run.
  • Do not commit production data; keep the file local.