#include "../../common/database/database_dump_service.h" void WorldserverCLI::DatabaseDump(int argc, char **argv, argh::parser &cmd, std::string &description) { description = "Dumps server database tables"; std::vector arguments = {}; std::vector options = { "--all", "--content-tables", "--login-tables", "--player-tables", "--bot-tables", "--merc-tables", "--state-tables", "--system-tables", "--static-instance-data", "--table-structure-only", "--table-lock", "--dump-path=", "--dump-output-to-console", "--drop-table-syntax-only", "--compress" }; if (cmd[{"-h", "--help"}]) { return; } EQEmuCommand::ValidateCmdInput(arguments, options, cmd, argc, argv); auto s = new DatabaseDumpService(); bool dump_all = cmd[{"-a", "--all"}]; if (!cmd("--dump-path").str().empty()) { s->SetDumpPath(cmd("--dump-path").str()); } // options s->SetDumpContentTables(cmd[{"--content-tables"}] || dump_all); s->SetDumpLoginServerTables(cmd[{"--login-tables"}] || dump_all); s->SetDumpPlayerTables(cmd[{"--player-tables"}] || dump_all); s->SetDumpBotTables(cmd[{"--bot-tables"}] || dump_all); s->SetDumpMercTables(cmd[{"--merc-tables"}] || dump_all); s->SetDumpStateTables(cmd[{"--state-tables"}] || dump_all); s->SetDumpSystemTables(cmd[{"--system-tables"}] || dump_all); s->SetDumpAllTables(dump_all); s->SetDumpWithNoData(cmd[{"--table-structure-only"}]); s->SetDumpTableLock(cmd[{"--table-lock"}]); s->SetDumpWithCompression(cmd[{"--compress"}]); s->SetDumpOutputToConsole(cmd[{"--dump-output-to-console"}]); s->SetDumpDropTableSyntaxOnly(cmd[{"--drop-table-syntax-only"}]); s->SetDumpStaticInstanceData(cmd[{"--static-instance-data"}]); s->DatabaseDump(); }