public static void Restore(RavenConfiguration configuration, DatabaseRestoreRequest restoreRequest, Action<string> output) { var databaseDocumentPath = FindDatabaseDocument(restoreRequest.BackupLocation); if (File.Exists(databaseDocumentPath) == false) { throw new InvalidOperationException("Cannot restore when the Database.Document file is missing in the backup folder: " + restoreRequest.BackupLocation); } var databaseDocumentText = File.ReadAllText(databaseDocumentPath); var databaseDocument = RavenJObject.Parse(databaseDocumentText).JsonDeserialization<DatabaseDocument>(); string storage; if (databaseDocument.Settings.TryGetValue("Raven/StorageTypeName", out storage) == false) { storage = "esent"; } if (!string.IsNullOrWhiteSpace(restoreRequest.DatabaseLocation)) { configuration.DataDirectory = restoreRequest.DatabaseLocation; } using (var transactionalStorage = configuration.CreateTransactionalStorage(storage, () => { })) { transactionalStorage.Restore(restoreRequest, output); } }
protected BaseRestoreOperation(DatabaseRestoreRequest restoreRequest, InMemoryRavenConfiguration configuration, Action<string> output) { _restoreRequest = restoreRequest; backupLocation = restoreRequest.BackupLocation; databaseLocation = _restoreRequest.DatabaseLocation.ToFullPath(); indexLocation = (_restoreRequest.IndexesLocation ?? Path.Combine(_restoreRequest.DatabaseLocation, "Indexes")).ToFullPath(); journalLocation = (_restoreRequest.JournalsLocation ?? _restoreRequest.DatabaseLocation).ToFullPath(); Configuration = configuration; this.output = output; }
public async Task<Operation> StartRestoreAsync(DatabaseRestoreRequest restoreRequest, CancellationToken token = default (CancellationToken)) { using (var request = adminRequest.CreateRestoreRequest()) { await request.WriteAsync(RavenJObject.FromObject(restoreRequest)).WithCancellation(token); var jsonResponse = await request.ReadResponseJsonAsync().WithCancellation(token).ConfigureAwait(false); return new Operation((AsyncServerClient)innerAsyncServerClient.ForSystemDatabase(), jsonResponse.Value<long>("OperationId")); } }
public Operation StartRestore(DatabaseRestoreRequest restoreRequest) { return asyncAdminServerClient.StartRestoreAsync(restoreRequest).ResultUnwrap(); }
public void Restore(DatabaseRestoreRequest restoreRequest, Action<string> output) { new RestoreOperation(restoreRequest, configuration, output).Execute(); }
public RestoreOperation(DatabaseRestoreRequest restoreRequest, InMemoryRavenConfiguration configuration, Action<string> operationOutputCallback) : base(restoreRequest, configuration, operationOutputCallback) { }
public Task StartRestoreAsync(DatabaseRestoreRequest restoreRequest) { var request = adminRequest.CreateRestoreRequest(); return request.WriteAsync(RavenJObject.FromObject(restoreRequest)); }
public void StartRestore(DatabaseRestoreRequest restoreRequest) { asyncAdminServerClient.StartRestoreAsync(restoreRequest).WaitUnwrap(); }
public async Task<Operation> StartRestoreAsync(DatabaseRestoreRequest restoreRequest) { var request = adminRequest.CreateRestoreRequest(); await request.WriteAsync(RavenJObject.FromObject(restoreRequest)); var jsonResponse = await request.ReadResponseJsonAsync().ConfigureAwait(false); return new Operation(innerAsyncServerClient, jsonResponse.Value<long>("OperationId")); }
public Operation StartRestore(DatabaseRestoreRequest restoreRequest) { return AsyncHelpers.RunSync(() => asyncAdminServerClient.StartRestoreAsync(restoreRequest)); }