Rails 与 Redshift - 我如何创建关系?

Posted

技术标签:

【中文标题】Rails 与 Redshift - 我如何创建关系?【英文标题】:Rails with Redshift - how do I create relation? 【发布时间】:2017-06-19 09:23:42 【问题描述】:

在我的 Rails 应用程序中,我试图为我的一个模型获取 Redshift 存储。我有适当的设置,例如

class RedshiftBase < ActiveRecord::Base
  establish_connection :redshift_development
  self.abstract_class = true
end

class Books < RedshiftBase
  self.table_name = :books
end

所以我的Book.connection 返回有效的#&lt;ActiveRecord::ConnectionAdapters::RedshiftAdapter:0... 对象。我仍然不知道我从这里去哪里,所以我得到关系,每次我创建一个对象时都会更新 Redshift db(Book.new 返回PG::UndefinedTable: 到目前为止的错误)。

【问题讨论】:

尝试测试books 表,如Book.connection.execute('select count(*) from books')books 有可能不在 public 命名空间中。 问题是我无法在 RedShift 中创建有效的关系(不知道如何)。我可以做Book.connection.create_table(:books) 之类的事情,我会得到一个关系但这是一种方法吗?如何创建属性? 究竟什么是“关系”?如果是表,你有没有使用 Active Record Migrations 创建它? 是的,我进行了迁移,但运行它后,我的 redshift 数据库没有更新为新表 所以你必须解决迁移问题。权限,错误的数据库,等等。 【参考方案1】:

您是否尝试过使用这些宝石中的任何一个将其与 活动记录:

Rails 5 ActiveRecord Redshift Adapter

Rails 4 ActiveRecord Redshift Adapter


或手动连接:

Create Redshift Client Connection via PG

【讨论】:

以上是关于Rails 与 Redshift - 我如何创建关系?的主要内容,如果未能解决你的问题,请参考以下文章

RedShift / PostgreSQL 中串行类型的替代方案

如何创建与 Redshift 的实时 Excel 连接

删除 Redshift 中的循环

在 Rails 中连接外部 redshift 数据库时出错

在 Redshift 的 JOIN 中使用模式名称

创建与 redshift 的粘合连接