Пример #1
0
        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;			
        }
Пример #3
0
        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"));
            }
        }
Пример #4
0
		public Operation StartRestore(DatabaseRestoreRequest restoreRequest)
		{
		    return asyncAdminServerClient.StartRestoreAsync(restoreRequest).ResultUnwrap();
		}
Пример #5
0
		public void Restore(DatabaseRestoreRequest restoreRequest, Action<string> output)
		{
			new RestoreOperation(restoreRequest, configuration, output).Execute();
		}
Пример #6
0
        public RestoreOperation(DatabaseRestoreRequest restoreRequest, InMemoryRavenConfiguration configuration, Action<string> operationOutputCallback)
            : base(restoreRequest, configuration, operationOutputCallback)
		{
		}
Пример #7
0
		public Task StartRestoreAsync(DatabaseRestoreRequest restoreRequest)
		{
		    var request = adminRequest.CreateRestoreRequest();

			return request.WriteAsync(RavenJObject.FromObject(restoreRequest));
		}
Пример #8
0
		public void StartRestore(DatabaseRestoreRequest restoreRequest)
		{
			asyncAdminServerClient.StartRestoreAsync(restoreRequest).WaitUnwrap();
		}
Пример #9
0
		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"));
		}
Пример #10
0
 public Operation StartRestore(DatabaseRestoreRequest restoreRequest)
 {
     return AsyncHelpers.RunSync(() => asyncAdminServerClient.StartRestoreAsync(restoreRequest));
 }