问题描述
出于某种原因,我正在尝试将我的 cockroachdb 迁移到 postgresql 中:
我有一些 .sql 格式的 cockroachdb 数据,比如booking.sql 等。 我尝试了很多方法来解决这个问题
- 尝试使用 psql 直接导入转储文件,但由于转储文件是 cockroachdb,因此显示了一些语法错误
- 我的第二个计划是将转储文件恢复到 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 等数据库工具。 我希望这个答案会有所帮助