我正在寻找一种方法来埃尔加斯特数据导入 PostgreSQL。我曾想过编写一些代码来从 API 中提取数据,但有 SQL 转储MySQL 和 ANSI但都不能运行在 PostgreSQL 上。
我不想导入 MySQL 而是导出到 CSV...有没有更好的方法?
答案1
我一直在为可能要做的演示而玩弄这个,并且使用一些基本的 UNIX 工具快速找到了一个解决方案... 虽然很老套,但确实有效。
cat f1db_ansi.sql | sed 's/int(..)/int/' | sed 's/ \+AUTO_INCREMENT//' | sed "s/\\\'/\'\'/g" | sed 's/UNIQUE KEY \"\(\w\+\)\"/UNIQUE /' | sed 's/^ *KEY .*(\"\(.*\)\")/CHECK ("\1" > 0)/' | sed 's/ date NOT NULL DEFAULT .0000.*,/ date,/'| psql -h 127.0.0.1 -U postgres -d f1 -q -b
其中 f1db_ansi.sql 是从站点转储的 ANSI SQL 数据。
截至 2017 年 7 月 25 日,这是正确的。
答案2
您可以按照本指南了解如何从 mysql 使用 pgloader:https://github.com/dimitri/pgloader/blob/master/docs/tutorial/mysql.rst