Backup and Restore
Charon can create a full snapshot of a game data file and restore it later. Backups capture the complete state of the database — all documents, schemas, project settings, and metadata — in a single portable file.
Creating a Backup
# Local file
charon DATA BACKUP --dataBase gamedata.json --output backup.msgpack
# Remote project
charon DATA BACKUP \
--dataBase "https://charon.live/view/data/MyGame/develop/" \
--output backup.msgpack \
--credentials "$CHARON_API_KEY"
The output is a file containing the complete game data in JSON format.
What is included
All document collections (user data, schema definitions, project settings).
ToolsVersion,RevisionHash, andChangeNumberfile-level fields.
What is not included
User accounts, API keys, and access control settings (server edition — managed separately).
Binary resource files (images, audio) attached to documents via Asset Path properties.
Restoring from a Backup
# Local file
charon DATA RESTORE --dataBase gamedata.json --input backup.msgpack
# Remote project
charon DATA RESTORE \
--dataBase "https://charon.live/view/data/MyGame/develop/" \
--input backup.msgpack \
--credentials "$CHARON_API_KEY"
Warning
DATA RESTORE replaces all content in the target database. The operation is not
incremental — the entire existing state is overwritten. Confirm you are targeting the
correct database before running.
Backup vs Export
Choose the right tool for the job:
|
|
|
|---|---|---|
Purpose |
Full snapshot for disaster recovery |
Filtered slice for runtime or tooling |
Format |
JSON / MEssagePack |
JSON / BSON / MessagePack / XLSX |
Includes schemas |
Always |
Optional ( |
Strips unused data |
No |
Yes — |
Restorable |
Yes, via |
Partially — via |
Use Backup when you need a full, restorable point-in-time snapshot. Use Export when preparing data for the game runtime or for external tools.
Scheduled Automated Backups
# Daily at 02:00
0 2 * * * charon DATA BACKUP \
--dataBase /var/game/gamedata.json \
--output /backups/gamedata_$(date +\%Y\%m\%d).msgpack
- name: Backup game data
run: |
charon DATA BACKUP \
--dataBase "${{ secrets.CHARON_DB_URL }}" \
--output backups/gamedata_${{ github.run_id }}.msgpack \
--credentials "${{ secrets.CHARON_API_KEY }}"
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: gamedata-backup
path: backups/
Pre-Publish Safety Snapshot
Take a backup immediately before publishing so that a known-good restore point exists:
# 1. Snapshot
charon DATA BACKUP --dataBase gamedata.json --output pre_publish_backup.msgpack
# 2. Validate
charon DATA VALIDATE --dataBase gamedata.json \
--validationOptions checkRequirements checkReferences --output err
# 3. Publish
charon DATA EXPORT --dataBase gamedata.json \
--mode publication --output StreamingAssets/gamedata.json --outputFormat json