PostgreSQL:从 MySQL 转储导入数据库 - 语法错误
PostgreSQL: Database Import from MySQL dump - syntax error
我有一个备份 MySQL 文件,我正在尝试将其导入我的 PostgreSQL 数据库。
/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
我不断得到
我什至尝试登录 Postgres 并且 运行 这导入正常
\i /Users/bheng/Desktop/database_backups/2016-06-10-local.sql
但结果相同。
我是不是做错了什么?我如何 stop/prevent 这个?
对我有用的是 pgloader。在 PostgreSQL 许可下,它非常快 + 开源。
网站顶部的第一个细节实际上提到了在一个命令中从 MySQL 迁移到 PostgreSQL。祝你好运!
对于仍在寻找答案的任何人;
错误中有一个 mysql "back-tick" (`)。 Mysql 使用 "back-ticks" 来保证 table 名称等标识符的安全。 Postgres 使用双引号 (")。
您不能只转储一个 sql 数据库供应商并导入另一个数据库供应商。有语法、外键、索引、数据转义等问题需要处理。
如果幸运的话,你有一个简单的数据库,你可以使用 "sed" 之类的东西来代替语法和编码问题。
例如,您可以将 "back-ticks" 替换为双引号以阻止您收到的错误。
sed -i 's/`/"/g' /path/to/sql_script
不过,我相信这只会揭示下一个问题。迁移数据库供应商需要时间。您可能最终会使用 "sed" 或类似的东西。 ODBC and/or JDBC 无法处理您可能遇到的所有坏数据和异常情况。
我有一个备份 MySQL 文件,我正在尝试将其导入我的 PostgreSQL 数据库。
/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
我不断得到
我什至尝试登录 Postgres 并且 运行 这导入正常
\i /Users/bheng/Desktop/database_backups/2016-06-10-local.sql
但结果相同。
我是不是做错了什么?我如何 stop/prevent 这个?
对我有用的是 pgloader。在 PostgreSQL 许可下,它非常快 + 开源。
网站顶部的第一个细节实际上提到了在一个命令中从 MySQL 迁移到 PostgreSQL。祝你好运!
对于仍在寻找答案的任何人;
错误中有一个 mysql "back-tick" (`)。 Mysql 使用 "back-ticks" 来保证 table 名称等标识符的安全。 Postgres 使用双引号 (")。
您不能只转储一个 sql 数据库供应商并导入另一个数据库供应商。有语法、外键、索引、数据转义等问题需要处理。
如果幸运的话,你有一个简单的数据库,你可以使用 "sed" 之类的东西来代替语法和编码问题。
例如,您可以将 "back-ticks" 替换为双引号以阻止您收到的错误。
sed -i 's/`/"/g' /path/to/sql_script
不过,我相信这只会揭示下一个问题。迁移数据库供应商需要时间。您可能最终会使用 "sed" 或类似的东西。 ODBC and/or JDBC 无法处理您可能遇到的所有坏数据和异常情况。