【问题标题】:Connect Rails to CockroachDB将 Rails 连接到 CockroachDB
【发布时间】:2017-03-23 06:16:06
【问题描述】:

CockroachDB 是一个非常有趣的分布式 SQL 数据库,它公开了 PostgreSQL 有线协议。所以我尝试使用经典的 pg gem 将一个新的 Rails 项目连接到 CockroachDB。不幸的是,一个简单的rails db:create 给出了:

/home/fengye87/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/postgresql_adapter.rb:671: warning: Failed to set the default_internal encoding to UTF8: 'ERROR:  unknown variable: "CLIENT_ENCODING"
'
invalid encoding name: unicode

所以我猜这表明 CockroachDB 不支持 CLIENT_ENCODING 变量。问题是:是否可以绕过在 pg 中设置这些变量?有人设法将 Rails 连接到 CockroachDB 吗?谢谢!

【问题讨论】:

  • 另一种方法是使用 Sequel 代替 Rails 的 ActiveRecord。不知道 CockroachDB 是否可以与 Sequel 一起使用,但它可能是更快获得支持的另一条途径。

标签: ruby-on-rails cockroachdb


【解决方案1】:

CockroachDB 目前不支持 ActiveRecord,但我们希望在不久的将来支持它。我们正在跟踪与 ORM 功能相关的问题on GitHub

【讨论】:

【解决方案2】:

CockroachDB 确实支持 client_encoding,但目前唯一支持的值是“utf8”。

由于修改起来相当简单,您可以手动更改 pg gem 中使用的值,也可以将 CockroachDB 问题提交到项目的 GitHub:http://github.com/cockroachdb/cockroach/issues/

【讨论】:

    【解决方案3】:

    为了补充 Nathan 的回答,即 CockroachDB 尚未与 ActiveRecord 一起使用,值得一提的是,CockroachDB 目前可通过较低级别的客户端使用,例如 Ruby's pg client

    【讨论】:

      【解决方案4】:

      【讨论】:

        猜你喜欢
        • 2021-12-13
        • 2021-12-13
        • 2021-04-14
        • 2021-12-13
        • 2022-08-05
        • 2022-08-30
        • 2017-11-08
        • 2019-12-17
        • 2021-09-02
        相关资源
        最近更新 更多