【问题标题】:Importing postgres data to mysql将postgres数据导入mysql
【发布时间】:2012-04-28 20:02:58
【问题描述】:

我有一个需求,我需要将 postgres 数据插入 mysql。假设我在 postgres 中有用户表。我在mysql中也有用户表。我试图做这样的事情:

gts = 'cd '+js_browse[0].js_path #gts prints correct folder name/usr/local/myfolder_name 
os.system(gts)
gts_home = 'export GTS_HOME='+js_browse[0].js_path  
os.system(gts_home)
tt=gts+'&& sh bin/admin.sh User --input-dir /tmp/import'
#inside temp/import i import store my postgres user table data
#bin is the folder inside myfolder_name

在 mysql 中,如果我使用该命令,它工作得非常好:

cd /usr/local/myfolder_name
bin/admin.sh User -account=1 user=hamid -create'

我无法以这种方式将数据存储在 mysql 中。任何帮助将不胜感激。

【问题讨论】:

  • 这是一次性的事情还是您需要一个脚本以便您可以重复复制/传输/导入数据?我只能猜测 admin.sh 是一个 shell 脚本,它使用其参数来执行某些操作,例如创建用户(您的示例似乎就是这种情况)。您是否希望更改 admin.sh 以同时使用 mysql 和 postgres 数据库? admin.sh 如何确定要连接到哪个数据库?您能否成功地将用户数据存储到 temp/import 中?
  • 每次在 postgres 中创建新用户时,我都需要运行此脚本。是的,我的数据存储在 temp/import 中。
  • 那么你现在真正想做的就是把在 temp/import 中收集的数据放到 MySQL 数据库中,对吧?我猜想理想情况下,您将通过用于从 Postgres 数据库中提取数据的同一 python 脚本来执行此操作。我认为您在这种情况下的选择类似于MySQLdbmysql command

标签: python mysql postgresql postgresql-9.1


【解决方案1】:

你并没有给我们太多信息。为什么会从 postgres 转到 mysql?

但您可以使用其中一种工具 - 我看到人们对它们赞不绝口

pg2mysqlpgs2sql

希望一切顺利。

【讨论】:

  • 我将从 postgres 转到 mysql 的原因是我有两个应用程序,一个在 postgres 上运行,另一个在 mysql 上运行。需要将数据从一个传输到另一个。
  • 我明白了。但我宁愿从 mysql 转到 postgres。我对这两者都不太了解,但 postgres 似乎更新、更可靠且速度更快。那么为什么不从 mysql 迁移到 postgres 呢?
  • 我只需要从postgres表(例如用户表)中获取数据并将其插入mysql表(这里又是用户表)。我不需要任何转换工具。
  • 哦,好的。如果这是一次性的,请使用 CSV。我知道postgres可以轻松导出为csv,mysql也可以轻松读取。
  • 可能 - 我不知道。现在你提到它,我可以双向阅读这个问题。
【解决方案2】:

PostgreSQL 提供了使用COPY 命令将数据转储为 CSV 格式的可能性。

对您来说最简单的方法是花时间将模式对象从 PostgreSQL 复制到 MySQL,您可以在 PostgreSQL 端使用pg_dump -s。恕我直言,正确移动模式将是最大的挑战。

然后您应该将 CSV 格式的数据转储导入 MySQL,check this 以供参考。向下滚动到 cmets,您还可以找到适用于 Windows 的食谱。像这样的东西应该可以解决问题(相应地调整参数):

LOAD DATA LOCAL INFILE C:\test.csv
INTO TABLE tbl_temp_data 
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';

【讨论】:

    猜你喜欢
    • 2018-03-21
    • 2015-05-01
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 2018-01-06
    • 1970-01-01
    • 2018-02-05
    • 1970-01-01
    相关资源
    最近更新 更多