gpt4 book ai didi

RethinkDB:​​有没有办法通过 GUI 或 rql 克隆同一个集群中的数据库?

转载 作者:行者123 更新时间:2023-12-01 08:28:35 34 4
gpt4 key购买 nike

假设我的集群上有一个名为 my_db 的数据库。我可以克隆这个数据库,以便在同一个集群上使用 my_db_cloned 而不处理转储/导出吗?

最佳答案

您可以通过 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));
})

同样,您可以构建一个循环来重新创建所有表:
r.db(source).tableList().forEach(function (t) {
return r.db(destination).tableCreate(t);
})

此版本不保留自定义主键或持久性设置,但您明白了。

最后克隆二级索引
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')});
});
})

对于所有这些查询,我建议在 node.js 或 Python 或 Ruby 客户端中运行它们。在数据资源管理器中运行它们可能不起作用,因为它会在大约一分钟后超时长时间运行的查询。

关于RethinkDB:​​有没有办法通过 GUI 或 rql 克隆同一个集群中的数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26867976/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com