Expand description
acme-proxy transfer --to <url> — copy every row into the other backend.
The move an operator makes once: a SQLite file that has outgrown one host,
into the PostgreSQL cluster the three roles can then be spread across. The
direction is not a flag — the configured database.url is the source, the
--to URL is the target, and each one’s scheme says which backend it is,
so the reverse is the same command with the two swapped.
Everything about how the copy works is
acme_proxy_store::transfer’s business. What lives here is the four
things that have to be true before it starts, each refused by name:
- the target is reachable and its schema is current — this command does not
migrate it, because applying a schema belongs to
migrate/initand theworkerrole and nothing else (ADR 0003); - the target is empty, with no override: a copy into a database that
already holds rows is not a merge, and the
INSERTs would collide halfway through on whichever primary key happened to clash first; - the two URLs are not the same database;
- and the operator has been told the one thing no check can establish — the source server must be stopped. A worker mid-issuance writes rows the copy has already walked past, and a torn snapshot looks exactly like a good one.