2

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 吗?谢谢!

4

4 回答 4

1

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

于 2016-11-09T15:24:15.463 回答
1

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

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

于 2016-11-09T15:13:23.983 回答
1

CockroachDB 现在与 Active Record 兼容:

https://www.cockroachlabs.com/blog/build-an-app-with-active-record-cockroachdb/

于 2021-04-23T16:02:14.080 回答
1

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

于 2016-11-09T15:38:16.910 回答