2016-11-09 56 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