[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