如何从文件导入/导出RavenDB数据?

时间:2014-11-11 21:03:16

标签: json ravendb

我有一个使用嵌入式RavenDB的应用程序。我希望能够将特定的文档集(包含所有嵌套/引用文档的文档)导入/导出到文件中。

我理想的功能就像:

var session = store.OpenSession();
MyDocument d1 = session.Load<MyDocument>(someId);
ImportExport.Export(store, d1, "file.xyz");

然后使用不同的IDocumentStore:

ImportExport.Import(store, "file.xyz");
var session = store.OpenSession();
MyDocument d2 = session.Load<MyDocument>(someId);

当然d1以任何方式等于d2。

AFAIK Smuggler实用程序一次导出所有文档。

我唯一的另一个想法是使用Json.NET序列化MyDocument对象,将其保存到文件,然后反序列化(并存储它)。我有一种感觉,这是一种方法,但是当MyDocument里面有很多其他文件时,它会起作用吗?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

我最终使用了&#34; Raven.Smuggler.exe&#34;程序使用&#34; large&#34;来完成工作。 ravendump文件。但是,我不清楚这个导入过程[从头开始删除]还是[合并]数据 - 我会执行数据库删除并在执行下面的导入过程之前重新创建,以保证数据的完整性。

  1. 下载匹配的RavenDB版本的副本。
  2. 简单地提取它(例如:C:\ RavenDB-Build-2956)
  3. 调用走私者。
  4. 命令(根据需要设置/替换变量占位符)

        C:\RavenDB-Build-2956\Smuggler\Raven.Smuggler.exe in $instance $dump "-u=$user" "-p=$plainpassword" -d=$dbname
    

    示例变量