如何通过带有动态活动记录类的Ruby脚本获取WordPress数据库表?
我目前有一个网站,是建立在WordPress,并有超过1000名客户注册。我能用ruby代码从WordPressdb中提取信息吗 我的客户需要无缝的方式吗?不需要再次注册 注:如何通过带有动态活动记录类的Ruby脚本获取WordPress数据库表?,ruby,wordpress,Ruby,Wordpress,我目前有一个网站,是建立在WordPress,并有超过1000名客户注册。我能用ruby代码从WordPressdb中提取信息吗 我的客户需要无缝的方式吗?不需要再次注册 注: 这段代码应该动态创建活动记录类或模型,而不是手动定义活动记录模型如果没有Gem,您可以通过Ruby脚本本身实现这一点 我假设您有rails应用程序,您可以从那里创建rake任务来从WordPress数据库获取数据 第1步: value = {host: "192.*.*.*", username: '', passwor
这段代码应该动态创建活动记录类或模型,而不是手动定义活动记录模型如果没有Gem,您可以通过Ruby脚本本身实现这一点 我假设您有rails应用程序,您可以从那里创建rake任务来从WordPress数据库获取数据 第1步:
value = {host: "192.*.*.*", username: '', password: '', database: ''}
ActiveRecord::Base.establish_connection(
adapter: 'mysql2',
encoding: 'utf8',
pool: 5,
host: value[:host],
username: value[:username],
password: value[:password],
database: value[:database]
)
tables.each do |table|
MODEL_CLASS= table
Object.const_set(MODEL_CLASS, Class.new(ActiveRecord::Base) { def self.name() MODEL_CLASS end;def self.table_name() MODEL_CLASS end })
records = MODEL_CLASS.constantize.all
results = []
records.each do |record|
set = {}
columns = MODEL_CLASS.constantize.column_names
p columns
columns.each do |column|
p record.send(column.to_sym)
p set[:mobile] = record.send(column.to_sym)
end
results << set
p record
end
p "Task done...."
p results
end
第二步:
tables = database_tables[key]
Key refers to the database name
然后定义需要获取的数据库表
database_tables = {:"database_name" => ["SaveContactForm7_1", "SaveContactForm7_2","SaveContactForm7_3","SaveContactForm7_4"]}
第三步:
tables = database_tables[key]
Key refers to the database name
第4步:
value = {host: "192.*.*.*", username: '', password: '', database: ''}
ActiveRecord::Base.establish_connection(
adapter: 'mysql2',
encoding: 'utf8',
pool: 5,
host: value[:host],
username: value[:username],
password: value[:password],
database: value[:database]
)
tables.each do |table|
MODEL_CLASS= table
Object.const_set(MODEL_CLASS, Class.new(ActiveRecord::Base) { def self.name() MODEL_CLASS end;def self.table_name() MODEL_CLASS end })
records = MODEL_CLASS.constantize.all
results = []
records.each do |record|
set = {}
columns = MODEL_CLASS.constantize.column_names
p columns
columns.each do |column|
p record.send(column.to_sym)
p set[:mobile] = record.send(column.to_sym)
end
results << set
p record
end
p "Task done...."
p results
end
tables.each do| table|
模型\类别=表格
Object.const_set(MODEL_CLASS,CLASS.new(ActiveRecord::Base){def self.name()MODEL_CLASS end;def self.table_name()MODEL_CLASS end})
记录=MODEL_CLASS.constantize.all
结果=[]
记录。每个人都做记录|
集合={}
columns=模型\类.常量化.列\名称
p列
列。每个do |列|
p记录发送(列发送至sym)
p set[:mobile]=记录.发送(列.至_sym)
结束
结果谢谢你的及时回复,这对我很有帮助