2016-11-09 47 views
2

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

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

+0

另一种方法是使用[Sequel](https://github.com/jeremyevans/sequel)代替Rails的ActiveRecord。不知道CockroachDB是否会与Sequel合作,但这是另一种可能更快支持的途径。 – karmakaze

回答

2

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

+0

几个月后..现在似乎有官方的积极记录支持。请参阅https://www.cockroachlabs.com/docs/build-a-ruby-app-with-cockroachdb-activerecord.html和https://github.com/cockroachdb/activerecord-cockroachdb-adapter。 – mipmip

1

CockroachDB支持client_encoding,但现在唯一支持的值是“utf8”。

由于这是相当简单的修改,你可以手动更改PG宝石使用的值或者你可以提交CockroachDB问题项目的GitHub上:http://github.com/cockroachdb/cockroach/issues/

2

要添加到Nathan的答案CockroachDB尚未与ActiveRecord一起使用,值得一提的是,CockroachDB目前可以通过较低级别的客户端使用,如Ruby's pg client