[mapguide-commits] r10155 - branches/4.0/MgDev/Server/RepositoryAdmin/app/Commands

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Mon Jun 16 05:14:05 PDT 2025


Author: jng
Date: 2025-06-16 05:14:03 -0700 (Mon, 16 Jun 2025)
New Revision: 10155

Modified:
   branches/4.0/MgDev/Server/RepositoryAdmin/app/Commands/App.cs
Log:
#2879: Implement sub-directory determination for (cold) backup and restore commands

Modified: branches/4.0/MgDev/Server/RepositoryAdmin/app/Commands/App.cs
===================================================================
--- branches/4.0/MgDev/Server/RepositoryAdmin/app/Commands/App.cs	2025-06-16 10:25:06 UTC (rev 10154)
+++ branches/4.0/MgDev/Server/RepositoryAdmin/app/Commands/App.cs	2025-06-16 12:14:03 UTC (rev 10155)
@@ -179,8 +179,20 @@
     {
         stdout.WriteLine(Strings.IDS_PROGRESS_BACKING_UP_OFFLINE_REPOSITORY);
 
-        // TODO: timestamp subdirectory computation
-        var outDir = cmd.OutputPath.CreateSubdirectory("LastColdBackup");
+        var bkDir = new DirectoryInfo(Path.Combine(cmd.OutputPath.FullName, "LastColdBackup"));
+        if (bkDir.Exists)
+        {
+            // Rename current LastColdBackup to COLD_BK_yyyy-mm-dd-hh-mm-ss
+            var localNow = DateTime.Now;
+            var newName = $"COLD_BK_{localNow.Year}-{localNow.Month:00}-{localNow.Day:00}-{localNow.Hour:00}-{localNow.Minute:00}-{localNow.Second:00}";
+            bkDir.MoveTo(newName);
+
+            // Re-create a new LastColdBackup
+            bkDir = new DirectoryInfo(Path.Combine(cmd.OutputPath.FullName, "LastColdBackup"));
+            bkDir.Create();
+        }
+
+        var outDir = bkDir;
         TransferDatabaseFiles(outDir);
         TransferLogFiles(outDir);
 
@@ -208,8 +220,28 @@
     {
         stdout.WriteLine(Strings.IDS_PROGRESS_RESTORING_BACKUP_REPOSITORY);
 
-        // TODO: tempBackupDir determination
+        var targetDir = new DirectoryInfo(cmd.OutputPath.FullName);
+        if (targetDir.Exists)
+        {
+            var children = targetDir.GetFiles();
+            if (children.Length > 0)
+            {
+                // Make TMP_BK_yyyy-mm-dd-hh-mm-ss subdirectory
+                var localNow = DateTime.Now;
+                var newName = $"TMP_BK_{localNow.Year}-{localNow.Month:00}-{localNow.Day:00}-{localNow.Hour:00}-{localNow.Minute:00}-{localNow.Second:00}";
 
+                var subDir = new DirectoryInfo(Path.Combine(targetDir.FullName, newName));
+                subDir.Create();
+
+                // Move children into it
+                foreach (var f in children)
+                {
+                    var dst = Path.Combine(subDir.FullName, f.Name);
+                    f.MoveTo(dst);
+                }
+            }
+        }
+
         TransferDatabaseFiles(cmd.OutputPath);
         TransferLogFiles(cmd.OutputPath);
         PerformRecovery(cmd.OutputPath.FullName);



More information about the mapguide-commits mailing list