将数据从Postgresql传输到Mysql(从RoR数据库传输到Wordpress数据库)来自不同的主机

时间:2015-10-14 20:20:27

标签: php mysql ruby-on-rails wordpress postgresql

这里我遇到了这个问题。

这里我们让这个主机有一个用RoR编写的完整系统,其中包含大量用户数据到Postgresql数据库中。

然后,在一个单独的本地主机中,我们有一个wordpress页面,它运行某些由buddypress插件驱动的应用程序(允许自定义字段),当然还使用MySQL数据库。

我需要的是:将用户数据从Postgresql数据库传输到MySQL数据库。我知道可以通过将数据插入数据库来在Wordpress中创建用户,但我需要查询从第一个数据库传输相同的用户数据。

我一直在思考用cronjob和php。 (当他们是两个不同的主机并且不得不使用mysql_connect和pg_connect时,只是不确定如何进行查询。)

我在postgresql中创建了一个视图,其中包含我需要迁移的数据。

我也被建议尝试" Navicat",但不确定它是否可以做我真正需要做的事。

要走的路是什么?感谢。

1 个答案:

答案 0 :(得分:0)

如果您可以访问这两个数据库,则可以编写两个类,一个来自mysql,另一个来自postgres

例如:

#config/database.yml
development: &DEV
  adapter: postgresql
  host: localhost
  database: postgresql_db
  username: 
  password: 

wordpress: &WORDPRESS
  adapter: mysql2
  host: localhost
  username: 
  password: 
  database: wordpress
wordpress_development:
  <<: *DEV

你可能有一个wordpress的基类

class WordpressBase < ActiveRecord::Base
  WordpressRecord.establish_connection({
    adapter:  "mysql2",
    host:     ENV['MYSQL_HOST'],
    username: ENV['MYSQL_USER'],
    password: ENV['MYSQL_PASS'],
    database: ENV['MYSQL_DB']
  })

  self.abstract_class = true
end

现在您可以使用普通活动记录来迁移数据

前:

class A < ActiveRecord::Base
  # connects to your postgres
end

class B < WordpressBase
  # connects to your mysql
end