我有一个备份mysql文件,我试图将其导入我的postsql数据库。
/Users/bheng/Desktop/database_backups/2016-06-10-local.sql
我试图通过命令行来做。
psql -d db-local -U root -f ~/Desktop/database_backups/2016-06-10-local.sql
我一直在
我甚至尝试登录到postgress并运行它导入正常
\i /Users/bheng/Desktop/database_backups/2016-06-10-local.sql
同样的结果发生了。
我做错了什么吗?我该如何阻止/阻止这种情况?
对此的任何提示/建议将不胜感激!
答案 0 :(得分:3)
对我有用的是pgloader。它是PostgreSQL许可下非常快的+开源。
网站顶部的第一个细节实际上提到了在一个命令中从MySQL迁移到PostgreSQL。祝你好运!
答案 1 :(得分:1)
任何仍在寻找答案的人;
错误中有一个mysql“back-tick”(`)。 Mysql使用“back-ticks”来保持表名等标识符的安全。 Postgres使用双引号(“)
您不能只是转储一个SQL数据库供应商并导入另一个。有语法,外键,索引,数据转义等问题需要处理。
如果你很幸运并且你有一个简单的数据库,你就可以使用像“sed”这样的东西来代替语法和编码问题。
例如,您可以使用双引号替换“后退”以停止您正在竞争的错误。
sed -i 's/`/"/g' /path/to/sql_script
但是,我相信这只会揭示下一期。迁移数据库供应商需要时间。您可能最终会使用“sed”或类似的东西。 ODBC和/或JDBC无法处理所有可能遇到的不良数据和异常情况。