protected InMemoryRavenConfiguration CreateConfiguration( string tenantId, DatabaseDocument document, string folderPropName, InMemoryRavenConfiguration parentConfiguration) { var config = new InMemoryRavenConfiguration { Settings = new NameValueCollection(parentConfiguration.Settings), }; if (config.Settings["Raven/CompiledIndexCacheDirectory"] == null) { var compiledIndexCacheDirectory = parentConfiguration.CompiledIndexCacheDirectory; config.Settings["Raven/CompiledIndexCacheDirectory"] = compiledIndexCacheDirectory; } SetupTenantConfiguration(config); config.CustomizeValuesForDatabaseTenant(tenantId); config.Settings["Raven/StorageEngine"] = parentConfiguration.DefaultStorageTypeName; foreach (var setting in document.Settings) { config.Settings[setting.Key] = setting.Value; } Unprotect(document); foreach (var securedSetting in document.SecuredSettings) { config.Settings[securedSetting.Key] = securedSetting.Value; } config.Settings[folderPropName] = config.Settings[folderPropName].ToFullPath(parentConfiguration.DataDirectory); config.Settings["Raven/Esent/LogsPath"] = config.Settings["Raven/Esent/LogsPath"].ToFullPath(parentConfiguration.DataDirectory); config.Settings[Constants.RavenTxJournalPath] = config.Settings[Constants.RavenTxJournalPath].ToFullPath(parentConfiguration.DataDirectory); config.Settings["Raven/VirtualDir"] = config.Settings["Raven/VirtualDir"] + "/" + tenantId; config.DatabaseName = tenantId; config.IsTenantDatabase = true; config.Initialize(); config.CopyParentSettings(parentConfiguration); return(config); }