假设我的群集上有一个名为my_db的数据库.我可以克隆这个数据库,以便在同一个集群上我可以使用my_db_cloned而不处理dump/export吗?
您可以通过ReQL将数据从一个表复制到另一个表中,如下所示:
r.table(destination).insert(r.table(source))
这也可以在给定数据库中的所有表的循环中运行:
r.db(source).tableList().forEach(function (t) {
return r.db(destination).table(t).insert(r.db(source).table(t));
})
Run Code Online (Sandbox Code Playgroud)
同样,您可以构造一个循环来重新创建所有表:
r.db(source).tableList().forEach(function (t) {
return r.db(destination).tableCreate(t);
})
Run Code Online (Sandbox Code Playgroud)
此版本不保留自定义主键或持久性设置,但您明白了.
最后克隆二级索引
r.db(source).tableList().forEach(function (t) {
return r.db(source).table(t).indexStatus().map(function (idx) {
return r.db(destination).table(t).indexCreate(
idx('index'), idx('function'), {geo: idx('geo'), multi: idx('multi')});
});
})
Run Code Online (Sandbox Code Playgroud)
对于所有这些查询,我建议在node.js中运行它们,或者使用Python或Ruby客户端运行它们.在数据资源管理器中运行它们可能不会起作用,因为它会在一分钟之后耗尽长时间运行的查询.
| 归档时间: |
|
| 查看次数: |
788 次 |
| 最近记录: |