Log errors with stacktrace in migration, skip 10k+ guilds, prevent migration from running twice by accident

This commit is contained in:
runebaas 2018-05-23 23:50:11 +02:00
parent 9354e5f83e
commit f53258e348
No known key found for this signature in database
GPG key ID: 2677AF508D0300D6
3 changed files with 78 additions and 44 deletions

View file

@ -35,14 +35,27 @@ namespace Geekbot.net.Commands.Admin
}
[Command("migrate", RunMode = RunMode.Async)]
public async Task Migrate()
public async Task Migrate(string force = "")
{
await ReplyAsync("starting migration");
try
{
var status = _globalSettings.GetKey("MigrationStatus");
if (status.Equals("Running"))
{
await ReplyAsync("Migration already running");
return;
}
if (status.Equals("Done") && !force.Equals("force"))
{
await ReplyAsync("Migration already ran, write `!owner migrate force` to run again");
return;
}
await ReplyAsync("starting migration");
_globalSettings.SetKey("MigrationStatus", "Running");
var redisMigration = new RedisMigration(_database, _redis, _logger, _client);
await redisMigration.Migrate();
_globalSettings.SetKey("MigrationStatus", "Done");
}
catch (Exception e)
{