public override void AfterCommit(string key, RavenJObject document, RavenJObject metadata, Guid etag) { string databaseName = null; if (TryGetDatabase(key, out databaseName)) { var selfInstance = InstanceEnumerator.EnumerateInstances().First(i => i.IsSelf); if (selfInstance.InstanceType == InstanceType.ReadWrite) { // Ensure database exists: foreach (var instance in InstanceEnumerator.EnumerateInstances().Where(i => !i.IsSelf)) { using (var documentStore = new DocumentStore() { Url = instance.InternalUrl }) { log.Info("Ensuring database {0} exists on instance {1} at {2}", databaseName, instance.Id, instance.InternalUrl); documentStore.Initialize(); documentStore.DatabaseCommands.EnsureDatabaseExists(databaseName); } } ReplicationUtilities.UpdateReplication(selfInstance, InstanceEnumerator, databaseName); } } base.AfterCommit(key, document, metadata, etag); }
public void Execute(Raven.Database.DocumentDatabase database) { // First step setup diagnostics: DiagnosticsProvider.Initialize(); // And then storage: StorageProvider.Initialize(); var storageDirectory = StorageProvider.GetDirectoryForDatabase(database.Name); log.Info("Setting storage directory for default database to: {0}", storageDirectory.FullName); database.Configuration.DataDirectory = storageDirectory.FullName; // Setup replication: var selfInstance = InstanceEnumerator.EnumerateInstances().First(i => i.IsSelf); if (selfInstance.InstanceType == InstanceType.ReadWrite) { ReplicationUtilities.UpdateReplication(selfInstance, InstanceEnumerator, database); } }