Eureka Phone: Duo
Upgrading and rollback
Moving to a new release without losing data, and how to go back if you must.
Upgrade
- Read first. The new archive's
docs/known-limits.md, the migration notes for migrations you have not applied yet, and the new settings indocs/runbooks/configuration.md. - Stop the phone in a maintenance window:
stop eureka_phone. FXServer stopseureka_duoand every other phone page with it. - Back up. Dump the database with the migrator account and prove the dump restores into a scratch database. Back up the object store with your provider's tools (bucket versioning or a copy). Keep a copy of your current
resources/eureka_phoneandresources/eureka_duofolders, including the config files you edited. - Apply the new migrations with the new archive's tool, exactly as in Installation:
status,up,status. - Replace the folders with the new archive's
eureka_phoneandeureka_duo. Then carry your changes over by comparing each of your edited files with the new one:eureka_phone/config/offers.lua,valet.lua,services.lua,emergency.lua,jobs.luaandclient.lua, andeureka_duo/config/client.lua. A release can add entries, so never copy an old file over a new one unread. - Start again:
refresh,ensure eureka_phone, thenensure eureka_duo. Check for[eureka_phone] info READYand run the short list of the release smoke test.
Players' key bindings live in their game settings. If a release changes a key command, players bind the key again; a saved binding always wins over the defaults in the config files.
Roll back
- Code only, when the new release added no migration: stop the phone, put back the previous
eureka_phoneandeureka_duofolders, start them. An older build also starts on a newer schema (it logsSCHEMA_AHEAD), but rely on that only when the release notes say the migrations are compatible with the old build. - With a migration: stop the phone, restore the database backup (and the object store if the release changed media), put back the previous folders, start. Everything players did since the backup is lost.
- A migration stopped partway: the phone refuses to start on a partial schema (
SCHEMA_PARTIAL), whichever build runs. The archive'sdocs/runbooks/database-migrations.md("Whenupdoes not finish") walks through resuming it.
Game money is not in the phone's backup. Once a money adapter is verified, restoring the database undoes the phone's record of transfers, invoices and coin holdings made since the backup, but not your framework's balances. Reconcile the two before players return.
Last updated October 2, 2026