Skip to content

Database management

Risto Lahtela edited this page Aug 25, 2021 · 13 revisions

Plan Header

Database management

This article covers how to modify data in the database.

Table of contents

  • Moving data from SQLite to MySQL
  • Backup and restore
  • Removing a player
  • Removing a server
  • Resetting one server's data
  • Removing data of a bot attack
  • Removing ALL data

Moving data from SQLite to MySQL

Perhaps you want to migrate the database to MySQL.

  1. Set up your MySQL
  2. Keep Database.Type as SQLite until the move has completed
  3. After Plan is using MySQL run /plan db move SQLite MySQL
  4. /plan reload

Same works in reverse for MySQL to SQLite!

Backup and restore

  • To back up the current database run /plan db backup
  • To restore from a backup use /plan db restore <backup file name>. You can tab complete the file names.

Removing a player

Command /plan db remove <player>, takes the name or UUID of the player to be removed.

Removing a server

Command /plan db uninstalled <server>, takes id, name or UUID of the server to be removed. You can use /plan servers to get the IDs.

Resetting one server's data

Maybe you have multiple servers in your network so /plan db clear is not good (it deletes ALL data).

  1. Remove /plugins/Plan/ServerInfoFile.yml of the server you want to reset
  2. /plan reload that server to get a new UUID for the server
  3. /plan db uninstalled <old server> to remove the old server. You can use /plan servers to get the IDs.

Removing data of a bot attack

A bot attack usually messes up the peak calculations. Removing that data needs manual SQL query to the database.

Removing bot users who did not join game servers:

DELETE FROM plan_users WHERE uuid NOT IN (SELECT DISTINCT uuid FROM plan_sessions);

Removing bad tps data:

DELETE FROM plan_tps WHERE date>{start} AND date<{end} AND players_online>{above value};

Replace the variables in {square brackets} (remove the brackets as well)

  • start is epoch millisecond of the start time of the attack
  • end is epoch millisecond of the end time of the attack
  • above value should be above 0, use it to further limit what data is removed.

Removing ALL data

To remove all data run /plan db clear.

All Plan instances connected to the database need to be reloaded afterwards as the missing server records will cause errors in running instances.

If you wish to uninstall Plan entirely use DROP DATABASE Plan; in MySQL instead.

Clone this wiki locally