2015-08-25 57 views
3

我有一个pg_restore数据转储的原始输出,需要围绕数据集构建一个应用程序来分析里面的内容。使用pg_restore数据转储创建新的Rails应用程序

到目前为止,我创建了一个新的Rails应用程序,设置我database.yml文件交谈正确的Postgres数据库,跑pg_restore。在Postgres中数据库看起来没问题

我的问题是,我如何开始使用Rails和ActiveRecord连接到这些表,以便我可以开始理解里面的内容?我倾向于使用AR和Rails进行分析,而不仅仅是在pg控制台中进行分析。

1)我是否需要为使用pg_restore导入的每个表创建一个模型?

样本输出:(注意:如果我搜索到Rails控制台中的所有表名的表存在,但我无法真正连接到它)

Loading development environment (Rails 4.2.3) 
2.1.4 :001 > ActiveRecord::Base.connection.tables.sort[1] 
=> "actstream_follow" 
2.1.4 :002 > ActiveRecord::Base.connection.tables.sort.each do |table| 
2.1.4 :003 >  next if table.match(/\Aschema_migrations\Z/) 
2.1.4 :004?> klass = table.singularize.camelize.constantize  
2.1.4 :005?> puts "#{klass.name} has #{klass.count} records" 
2.1.4 :006?> end 
PG::UndefinedTable: ERROR: relation "actstream_actions" does not exist 

回答

1

我开始的方式来做到这一点思考,然后我的“寻找宝石”提醒踢我会试试这个:

https://github.com/bosko/rmre

我看起来像它可以生成所有模型,主键,正确的命名惯例,甚至foreig的在Postgres和其他人的密钥。

+0

是的。你正在寻找的术语是“反向工程”,意思是“反向工程化数据库以创建模型” –

+0

1,000,000次是的!这个小宝石在大约3秒内为我创造了140个模型,并为我节省了大约一周的工作时间。谢谢! – tim5046

相关问题