我的应用程序正在使用RethinkDb。一切运行正常,但是需要新的要求才能将数据库迁移到MongoDb。
这可能吗?如何迁移表/集合,数据,索引等? Blob类型如何,自动递增。 ID?
谢谢!
答案 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。