从 cocroachdb 到 postgresql 的数据迁移

问题描述

出于某种原因,我正在尝试将我的 cockroachdb 迁移到 postgresql 中:

我有一些 .sql 格式的 cockroachdb 数据,比如booking.sql 等。 我尝试了很多方法解决这个问题

  1. 尝试使用 psql 直接导入转储文件,但由于转储文件是 cockroachdb,因此显示了一些语法错误
  2. 我的第二个计划是将转储文件恢复到 cockroachdb 系统并尝试从那里运行 pgdump。但是我无法在 cockroachdb 中恢复数据库

ERROR: Failed to open backup storage location: unsupported storage scheme: "" - refer to docs to find supported storage schemes

我再次尝试使用 cockroachdb 中的 import 语句,但没有用。 凭借我的一点知识,我还搜索了 google 和 youtube,但在他们的小文档中我没有发现任何有用的内容

任何帮助将不胜感激。谢谢

解决方法

从 cockroachDB 导出数据有一些限制。在新版本中,您无法将数据直接导出到 SQL。 第一种导出方式是使用 cockroach dump 命令,但它已从 20.2 版开始弃用,因此如果您使用较新的版本,这将不起作用。

cockroach dump <database> <table> <table...> <flags>

示例:

cockroach dump startrek --insecure --user=maxroach > backup.sql

在新版本中,您可以使用 EXPORT 等 SQL 命令将数据导出为 CSV 文件

EXPORT DATABASE bank INTO 's3://{BUCKET NAME}/{PATH}?AWS_ACCESS_KEY_ID={KEYID}&AWS_SECRET_ACCESS_KEY={SECRET ACCESS KEY}' \ AS OF SYSTEM TIME '-10s';

导出到本地节点

EXPORT DATABASE bank INTO ('nodelocal://1/{PATH}');

另一种导出方式是使用数据库客户端,例如 DBeaver。 您可以从 https://dbeaver.io/download/ 下载并安装 DBeaver。 添加连接后,您可以从此路径导出数据库右键单击db>tools>Backup

最快和最简单的导出方法是使用 DBeaver 等数据库工具。 我希望这个答案会有所帮助