public async Task <HealthCheckResult> CheckHealthAsync( HealthCheckContext context, CancellationToken cancellationToken = default) { try { var store = _options.GetDocumentStore(null); var operation = new GetDatabaseNamesOperation(start: 0, pageSize: 100); var databaseNames = await store.Maintenance.Server.SendAsync(operation); if (!string.IsNullOrWhiteSpace(_options.Settings.DatabaseName) && !databaseNames.Contains(_options.Settings.DatabaseName, StringComparer.OrdinalIgnoreCase)) { return(new HealthCheckResult( context.Registration.FailureStatus, $"RavenDB doesn't contains '{_options.Settings.DatabaseName}' database.")); } else { return(HealthCheckResult.Healthy("Chavah database is operational.")); } } catch (Exception ex) { return(new HealthCheckResult( context.Registration.FailureStatus, description: "Chavah database is down", exception: ex)); } }
public List <DatabaseCollection> GetDatabaseNames() { try { var operation = new GetDatabaseNamesOperation(0, 25); string[] databaseNames = Store.Maintenance.Server.Send(operation); Databases = new List <DatabaseCollection>(); foreach (string item in databaseNames) { DatabaseCollection t = new DatabaseCollection(); t.DatabasName = item; t.Collections = GetCollection(item); foreach (string col in t.Collections) { ConnProp.Entities.Add(GetEntityStructure(col.Remove(col.Length, 1), t.DatabasName)); } } return(Databases); } catch (Exception ex) { DME_Editor.AddLogMessage("Error", "Could not Get Databases From RavenDB " + ConnProp.ConnectionName, DateTime.Now, -1, ConnProp.Url, Errors.Failed); return(null); } }
public static DocumentStore GetDocumentStore(string url = null) { if (url is null) { url = "http://localhost:8080"; } var dataBase = "kairos"; var store = new DocumentStore { Urls = new[] { url }, Database = dataBase }; store.Initialize(); var operation = new GetDatabaseNamesOperation(0, 10); var databases = store.Maintenance.Server.Send(operation); if (!databases.Contains(dataBase)) { var createDb = new CreateDatabaseOperation(new DatabaseRecord(dataBase)); store.Maintenance.Server.Send(createDb); } new ListFeedEventAggregatedIndex().Execute(store); return(store); }
public void Foo() { using (var store = new DocumentStore()) { #region get_db_names_sample var operation = new GetDatabaseNamesOperation(0, 25); string[] databaseNames = store.Maintenance.Server.Send(operation); #endregion } }
public static void TestEnvironmentInitialization() { Environment.SetEnvironmentVariable("CODE_COVERAGE_SESSION_NAME", null); EmbeddedServer.Instance.StartServer(new ServerOptions { FrameworkVersion = "2.2.8", ServerUrl = DatabaseConnectionString, }); DatabaseConnectionString = EmbeddedServer.Instance.GetServerUriAsync().GetAwaiter().GetResult().ToString(); var store = EmbeddedServer.Instance.GetDocumentStore(new DatabaseOptions(_databaseName)); store.Maintenance.Server.Send(new DeleteDatabasesOperation(store.Database, hardDelete: true)); string[] databaseNames; do { var operation = new GetDatabaseNamesOperation(0, 25); databaseNames = store.Maintenance.Server.Send(operation); } while (databaseNames.Contains(store.Database)); store.EnsureDatabaseExists(_databaseName, configureRecord: r => { r.Revisions = new RevisionsConfiguration() { Default = new RevisionsCollectionConfiguration { Disabled = false, PurgeOnDelete = false, MinimumRevisionsToKeep = null, MinimumRevisionAgeToKeep = null, }, Collections = new System.Collections.Generic.Dictionary <string, RevisionsCollectionConfiguration> { { "@Outbox", new RevisionsCollectionConfiguration { Disabled = true } } } }; }); _documentStore = store; //EmbeddedServer.Instance.StartServer(new ServerOptions //{ // ServerUrl = DatabaseConnectionString, //}); //_documentStore = EmbeddedServer.Instance.GetDocumentStore(new DatabaseOptions(_databaseName)); //_documentStore.DeleteDatabaseWithName(_databaseName); }
protected override async Task ExecuteAsync(CancellationToken stoppingToken) { while (!stoppingToken.IsCancellationRequested) { if (!_isNotCompleted) { break; } try { var docStore = new DocumentStore { Urls = new[] { _settings.Url }, Database = _settings.Name }; docStore.Initialize(); var operation = new GetDatabaseNamesOperation(0, 1000); // 1000 is safe enough for me. var databaseNames = docStore.Maintenance.Server.Send(operation); docStore.Maintenance.Server.Send(new CreateDatabaseOperation(new DatabaseRecord(_settings.Name))); var importOperation = await docStore.Smuggler.ImportAsync(new DatabaseSmugglerImportOptions { OperateOnTypes = DatabaseItemType.Documents }, _importFilePath, stoppingToken); await importOperation.WaitForCompletionAsync(); _logger.LogInformation("Completed the import..."); _isNotCompleted = false; break; } catch (Exception ex) { if (ex.Message.Contains("already exists")) { _isNotCompleted = false; } _logger.LogError(ex.Message); } _retries += 1; _logger.LogDebug("Retrying to import: {retries}", _retries); await Task.Delay(TimeSpan.FromSeconds(15), stoppingToken); } }
public static IDocumentStore DeleteDatabaseWithName(this IDocumentStore store, string database) { database = database ?? store.Database; store.Maintenance.Server.Send(new DeleteDatabasesOperation(database, hardDelete: true)); string[] databaseNames; do { var operation = new GetDatabaseNamesOperation(0, 25); databaseNames = store.Maintenance.Server.Send(operation); } while (databaseNames.Contains(database)); return(store); }
public async Task <List <string> > GetDatabaseNames(IDocumentStore documentStore) { const int pageSize = 50; var results = new List <string>(); string[] dbNames; var start = 0; do { var operation = new GetDatabaseNamesOperation(start, pageSize); dbNames = await documentStore.Maintenance.Server.SendAsync(operation); results.AddRange(dbNames); start += pageSize; }while (dbNames.Length > 0); return(results); }
public static void LoadDatabase(string url = null) { if (url is null) { url = "http://raven_db:8080"; } var store = new DocumentStore { Urls = new[] { url }, Database = DataBase }; store.Initialize(); var operation = new GetDatabaseNamesOperation(0, 100); var databases = store.Maintenance.Server.Send(operation); if (!databases.Contains(DataBase)) { var createDb = new CreateDatabaseOperation(new DatabaseRecord(DataBase)); store.Maintenance.Server.Send(createDb); } new LimitUsedIndex().Execute(store); }