forked from Kieran/void.cat
Skip files-v2 if no v1 dir
This commit is contained in:
parent
6481eb54f0
commit
72047a5098
@ -5,16 +5,21 @@ namespace VoidCat.Services.Migrations;
|
|||||||
public class FileStoreV2 : IMigration
|
public class FileStoreV2 : IMigration
|
||||||
{
|
{
|
||||||
private readonly VoidSettings _settings;
|
private readonly VoidSettings _settings;
|
||||||
|
|
||||||
public FileStoreV2(VoidSettings settings)
|
public FileStoreV2(VoidSettings settings)
|
||||||
{
|
{
|
||||||
_settings = settings;
|
_settings = settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int Order => 2;
|
public int Order => 2;
|
||||||
public ValueTask<IMigration.MigrationResult> Migrate(string[] args)
|
public ValueTask<IMigration.MigrationResult> Migrate(string[] args)
|
||||||
{
|
{
|
||||||
var baseDir = Path.Join(_settings.DataDirectory, "files-v1");
|
var baseDir = Path.Join(_settings.DataDirectory, "files-v1");
|
||||||
|
if (!Directory.Exists(baseDir))
|
||||||
|
{
|
||||||
|
return ValueTask.FromResult(IMigration.MigrationResult.Skipped);
|
||||||
|
}
|
||||||
|
|
||||||
foreach (var path in Directory.EnumerateFiles(baseDir))
|
foreach (var path in Directory.EnumerateFiles(baseDir))
|
||||||
{
|
{
|
||||||
if (!Guid.TryParse(Path.GetFileNameWithoutExtension(path), out var id))
|
if (!Guid.TryParse(Path.GetFileNameWithoutExtension(path), out var id))
|
||||||
@ -28,15 +33,16 @@ public class FileStoreV2 : IMigration
|
|||||||
{
|
{
|
||||||
Directory.CreateDirectory(destDir);
|
Directory.CreateDirectory(destDir);
|
||||||
}
|
}
|
||||||
|
|
||||||
File.Move(MapPathV1(id), dest);
|
File.Move(MapPathV1(id), dest);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ValueTask.FromResult(IMigration.MigrationResult.Completed);
|
return ValueTask.FromResult(IMigration.MigrationResult.Completed);
|
||||||
}
|
}
|
||||||
|
|
||||||
private string MapPathV1(Guid id) =>
|
private string MapPathV1(Guid id) =>
|
||||||
Path.Join(_settings.DataDirectory, "files-v1", id.ToString());
|
Path.Join(_settings.DataDirectory, "files-v1", id.ToString());
|
||||||
|
|
||||||
private string MapPathV2(Guid id) =>
|
private string MapPathV2(Guid id) =>
|
||||||
Path.Join(_settings.DataDirectory, "files-v2", id.ToString()[..2], id.ToString()[2..4], id.ToString());
|
Path.Join(_settings.DataDirectory, "files-v2", id.ToString()[..2], id.ToString()[2..4], id.ToString());
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user