从Rails postgres数据库导出CSV - 添加关联

时间:2014-09-29 20:01:30

标签: ruby-on-rails postgresql csv activerecord associations

我正在尝试导出有关我的Rails应用程序(由Heroku托管)的用户的信息。我按照本教程导出CSV文件:

https://coderwall.com/p/jwtxjg

这涉及以下内容:

  1. 连接到gres后数据库:

    psql“dbname = foo host = bar.compute-1.amazonaws.com user = abc password = 123 port = 5432 sslmode = require”

  2. 运行查询:

    \ copy(SELECT id,sign_in_count,last_sign_in_at,created_at FROM users)to dump.csv CSV DELIMITER','

  3. 这会将CSV文件导出到我当前的目录。

    但是,我还想在查询中包含一个关联模型 - 例如,在我的应用中,用户创建了项目,我想导出每个用户创建的项目数。

    如何更新我的查询才能执行此操作?

1 个答案:

答案 0 :(得分:0)

您尝试添加与给定user_id匹配的注册表计数(假设有一个名为user_id的字段)。像这样:

  

\ copy(SELECT u.id,u.sign_in_count,u.last_sign_in_at,u.created_at,   COUNT(p.project)           来自用户u,项目p           在哪里p.user_id = u.id           GROUP BY u.id,u.sign_in_count,u.last_sign_in_at u.created_at)to dump.csv CSV DELIMITER','

假设在Users表中每个用户只有一个注册表,这应该可行。