RavenDB当前嵌入式API不支持多个数据库

时间:2013-03-15 13:26:03

标签: unit-testing ravendb

我正在使用EmbdeddedDocumentStore,在单元测试我的应用程序时运行在内存中。

我的帐户注册控制器需要为租户创建一个新数据库。它正在调用EnsureDatabaseExists(newTenantId)

这会导致以下异常:

Multiple databases are not supported in the embedded API currently

我该如何解决这个问题?我是否必须启动非嵌入式RavenDB服务器?

2 个答案:

答案 0 :(得分:1)

假设您希望在测试期间实际针对嵌入式RavenDB内存中实例运行,并且您在生产中使用完整的RavenDB服务器,那么您只需添加一些代码来检查您正在使用的风格:

if (!(documentStore is EmbeddableDocumentStore))
  documentStore.DatabaseCommands.EnsureDatabaseExists(newTenantId);

您还需要确保在打开会话时不要尝试切换到newTenantId数据库。你也可能需要一些条件逻辑。

答案 1 :(得分:0)

错误消息似乎很清楚......要么将代码更改为不需要多个数据库,要么使用非嵌入式存储,或者唠叨RavenDB人员添加对此方案的支持。