From 72047a509843fa545e5888e9450e12065b476a61 Mon Sep 17 00:00:00 2001 From: Kieran Date: Fri, 3 Nov 2023 01:23:31 +0900 Subject: [PATCH] Skip files-v2 if no v1 dir --- VoidCat/Services/Migrations/FileStoreV2.cs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/VoidCat/Services/Migrations/FileStoreV2.cs b/VoidCat/Services/Migrations/FileStoreV2.cs index 092feb7..6eb6171 100644 --- a/VoidCat/Services/Migrations/FileStoreV2.cs +++ b/VoidCat/Services/Migrations/FileStoreV2.cs @@ -5,16 +5,21 @@ namespace VoidCat.Services.Migrations; public class FileStoreV2 : IMigration { private readonly VoidSettings _settings; - + public FileStoreV2(VoidSettings settings) { _settings = settings; } - + public int Order => 2; public ValueTask Migrate(string[] args) { 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)) { if (!Guid.TryParse(Path.GetFileNameWithoutExtension(path), out var id)) @@ -28,15 +33,16 @@ public class FileStoreV2 : IMigration { Directory.CreateDirectory(destDir); } + File.Move(MapPathV1(id), dest); } return ValueTask.FromResult(IMigration.MigrationResult.Completed); } - + private string MapPathV1(Guid id) => Path.Join(_settings.DataDirectory, "files-v1", id.ToString()); - + private string MapPathV2(Guid id) => Path.Join(_settings.DataDirectory, "files-v2", id.ToString()[..2], id.ToString()[2..4], id.ToString()); }