我最初是使用单独的数据库进行开发——一个用于数据,另一个用于配置,但现在我的查询需要从两个数据库中“连接”数据。如何使用C# API将这两个数据库合并为迁移过程的一部分?
Raven.Client.Documents.Smuggler.DataSmuggler
类来完成:using System.Threading.Tasks;
using Raven.Client.Documents;
using Raven.Client.ServerWide.Operations;
public class RavenDBMerger
{
readonly IDocumentStore _store;
public RavenDBMerger(IDocumentStore store)
{
_store = store;
}
public async Task MergeDatabases()
{
string sourceDbName = "source-database";
var sourceDb = _store.Maintenance.Server.Send(new GetDatabaseRecordOperation(sourceDbName));
if (sourceDb != null)
{
var smugglerFrom = _store.Smuggler.ForDatabase(sourceDbName);
var smugglerTo = _store.Smuggler.ForDatabase("target-database");
await smugglerFrom.ExportAsync(new Raven.Client.Documents.Smuggler.DatabaseSmugglerExportOptions(), smugglerTo);
_store.Maintenance.Server.Send(new DeleteDatabasesOperation(sourceDbName, hardDelete: true));
}
}
}