Skip to content

Commit

Permalink
[CLI] Add --skip-backup to world database:updates (#4605)
Browse files Browse the repository at this point in the history
  • Loading branch information
Akkadius authored Jan 22, 2025
1 parent 90c3739 commit 0acad18
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 3 deletions.
12 changes: 11 additions & 1 deletion common/database/database_update.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,10 @@ bool DatabaseUpdate::UpdateManifest(
LogSys.EnableMySQLErrorLogs();
LogInfo("{}", Strings::Repeat("-", BREAK_LENGTH));

if (!missing_migrations.empty()) {
if (!missing_migrations.empty() && m_skip_backup) {
LogInfo("Skipping database backup");
}
else if (!missing_migrations.empty()) {
LogInfo("Automatically backing up database before applying updates");
LogInfo("{}", Strings::Repeat("-", BREAK_LENGTH));
auto s = DatabaseDumpService();
Expand Down Expand Up @@ -271,6 +274,13 @@ DatabaseUpdate *DatabaseUpdate::SetContentDatabase(Database *db)
return this;
}

DatabaseUpdate *DatabaseUpdate::SetSkipBackup(bool skip)
{
m_skip_backup = skip;

return this;
}

bool DatabaseUpdate::CheckVersionsUpToDate(DatabaseVersion v, DatabaseVersion b)
{
LogInfo("{}", Strings::Repeat("-", BREAK_LENGTH));
Expand Down
3 changes: 3 additions & 0 deletions common/database/database_update.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,15 @@ class DatabaseUpdate {

DatabaseUpdate *SetDatabase(Database *db);
DatabaseUpdate *SetContentDatabase(Database *db);
DatabaseUpdate *SetSkipBackup(bool skip);
bool HasPendingUpdates();
private:
bool m_skip_backup = false;
Database *m_database;
Database *m_content_database;
static bool CheckVersionsUpToDate(DatabaseVersion v, DatabaseVersion b);
void InjectBotsVersionColumn();

};

#endif //EQEMU_DATABASE_UPDATE_H
4 changes: 2 additions & 2 deletions world/cli/database_dump.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ void WorldserverCLI::DatabaseDump(int argc, char **argv, argh::parser &cmd, std:
"--compress"
};

EQEmuCommand::ValidateCmdInput(arguments, options, cmd, argc, argv);

if (cmd[{"-h", "--help"}]) {
return;
}

EQEmuCommand::ValidateCmdInput(arguments, options, cmd, argc, argv);

auto s = new DatabaseDumpService();
bool dump_all = cmd[{"-a", "--all"}];

Expand Down
5 changes: 5 additions & 0 deletions world/cli/database_updates.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,17 @@ void WorldserverCLI::DatabaseUpdates(int argc, char **argv, argh::parser &cmd, s
{
description = "Runs database updates manually";

std::vector<std::string> options = {
"--skip-backup",
};

if (cmd[{"-h", "--help"}]) {
return;
}

DatabaseUpdate update;
update.SetDatabase(&database)
->SetSkipBackup(cmd[{"--skip-backup"}] )
->SetContentDatabase(&content_db)
->CheckDbUpdates();
}

0 comments on commit 0acad18

Please sign in to comment.