示例#1
0
        public async Task BackupAsync(CancellationToken cancellationToken = default)
        {
            var backupDirPath = _pathProvider.GetDatabaseBackupDirectory();

            Directory.CreateDirectory(backupDirPath);
            var fileName = _clock.GetCurrentTime().ToString("yyyy-MM-ddTHH-mm-ss", CultureInfo.InvariantCulture);
            var path     = Path.Combine(backupDirPath, fileName);
            await _database.Database.ExecuteSqlInterpolatedAsync($"VACUUM INTO {path}", cancellationToken);

            _logger.LogWarning(Resource.DatabaseBackupServiceFinishBackup, path);
        }