从不同主机将数据从Postgresql传输到Mysql(从RoR数据库到Wordpress数据库)
问题描述:
这里我遇到了这个问题。从不同主机将数据从Postgresql传输到Mysql(从RoR数据库到Wordpress数据库)
在这里,我们有一个用RoR编写的完整系统的主机,其中有大量的用户数据进入Postgresql数据库。
然后,在一个单独的本地主机中,我们有一个运行某些应用程序并使用buddypress插件(允许自定义字段)的wordpress页面,当然还使用MySQL数据库。
我需要什么是:将用户数据从Postgresql数据库传输到MySQL数据库。我知道可以通过在数据库中插入数据来在Wordpress中创建用户,但我需要查询从第一个数据库传输相同的用户数据。
我一直在用cronjob与思考。 (只是当他们是两个不同的主机并且必须使用mysql_connect和pg_connect时,不确定如何执行查询)。
我在postgresql中用我需要迁移的数据创建了一个视图。
我也被建议尝试“Navicat”,但不确定它是否可以做我确切需要做的事情。
会走什么路?谢谢。
答
,如果你能同时访问数据库,你可以写两个类,一个来自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