【问题标题】:Transfering data from Postgresql to Mysql (From RoR Database into Wordpress Database) from different hosts从不同主机将数据从 Postgresql 传输到 Mysql(从 RoR 数据库到 Wordpress 数据库)
【发布时间】:2015-10-14 20:20:27
【问题描述】:

我来解决这个问题。

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

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

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

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

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

我也被建议试用“Navicat”,但不确定它是否能完成我真正需要做的事情。

要走的路是什么?谢谢。

【问题讨论】:

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


    【解决方案1】:

    如果你可以访问这两个数据库,你可以编写两个类,一个派生自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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-08
      • 2017-12-12
      • 2016-07-28
      • 1970-01-01
      相关资源
      最近更新 更多