如何将RethinkDb迁移到MongoDb?

时间:2018-12-14 02:32:12

标签: mongodb database-migration rethinkdb

我的应用程序正在使用RethinkDb。一切运行正常,但是需要新的要求才能将数据库迁移到MongoDb。

这可能吗?如何迁移表/集合,数据,索引等? Blob类型如何,自动递增。 ID?

谢谢!

1 个答案:

答案 0 :(得分:2)

  

这可能吗?如何迁移表/集合,数据,索引等?

将数据从RethinkDB迁移到MongoDB的一种方法是使用rethinkdb dump命令从RethinkDB导出数据,然后使用mongoimport导入MongoDB。对于示例

rethinkdb dump -e dbname.tableName

这将生成一个存档文件:

rethinkdb_dump_<datetime>.tar.gz

解压缩存档文件后,您可以按以下方式使用mongoimport

mongoimport --jsonArray --db dbName --collection tableName ./rethinkdb_dump_<datetime>/dbName/tableName.json

不幸的是,对于索引,RethinkDB和MongoDB之间的格式是完全不同的。索引存储在同一归档文件中:

./rethinkdb_dump_<datetime>/dbName/tableName.info

尽管您仍然可以编写Python脚本来读取info文件,并使用MongoDB Python driver (PyMongo)在MongoDB中创建索引。另请参见create_indexes()方法以获取更多信息。

建议使用Python的原因之一是因为RethinkDB也有一个Client Python driver。因此,从技术上讲,您还可以跳过导出阶段,​​并编写脚本以将RethinkDB连接到MongoDB。