Supported Storage Backends
| Type | Use Case |
|---|---|
sqlite | Single-server setups; the default out of the box |
mysql | Multi-server or larger deployments |
postgresql | Multi-server or larger deployments |
redis | High-performance, distributed network setups |
yml | Development and testing only — not for production |
Migration Command
Run the following command in-game or from the server console to migrate between backends:perplayerkit.admin
Examples:
Step-by-Step Migration
Back up your existing data
Stop the server or ensure no active writes are happening, then copy your current database file to a safe backup location. For SQLite this is
plugins/PerPlayerKit/database.db.Configure the destination storage in config.yml
Add the credentials and connection details for your target backend before running the migration. The plugin must be able to connect to the destination before any data is transferred.
- MySQL
- PostgreSQL
- Redis
config.yml
Test connectivity to the destination database
Confirm the database server is running, reachable from your Minecraft server’s host, and that the credentials you entered are correct. Firewall rules and open ports are the most common connectivity blockers.
Run the migration command in-game
With the destination storage configured, execute the migration command — for example:Progress updates will appear in chat and in the console as data is copied across. The migration runs asynchronously, so the server remains live.
Wait for the completion message
Watch for the “Migration completed successfully!” confirmation in chat and console. Do not restart the server or change the storage type until this message appears.
Post-Migration Verification Checklist
After the server comes back online, verify the following before announcing the migration to players:- No storage connection errors in the server console on startup
- Kit loading works correctly for a test player account
- Kit saving works correctly and persists across relog
- Public kits are accessible and load the correct inventories
Troubleshooting
Connection Error during migration
Connection Error during migration
The plugin could not reach the destination database. Check the following:
- Confirm that the host, port, username, and password in
config.ymlare correct. - Ensure the database server process is running.
- If connecting to a remote host, verify that firewall rules permit inbound connections on the database port (default
3306for MySQL,5432for PostgreSQL,6379for Redis). - For SSL issues, try setting
useSSL: falsetemporarily to isolate the problem.
Missing data after migration
Missing data after migration
Kit data is not appearing after switching to the new backend. Work through these checks:
- Open the console and scroll back through the migration output — look for any error lines that indicate skipped or failed entries.
- Confirm that the migration completed with the success message before you updated
storage.type. - Verify that you saved
config.ymlafter updatingstorage.typeand that the server was fully restarted, not just reloaded.
Partial migration — some entries are missing
Partial migration — some entries are missing
If the migration was interrupted or only transferred a subset of entries, simply run the same migration command again. The process will overwrite any entries that already exist in the destination, and fill in any that were missed the first time — no data in the destination will be corrupted by re-running.
The migration command copies data from the source backend to the destination — it does not delete or modify the source. Your original database remains intact after migration, giving you a clean rollback path. To roll back, just revert
storage.type in config.yml to the original backend and restart the server.