将 Rails 连接到 CockroachDB
Connect Rails to CockroachDB
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?谢谢!
CockroachDB 确实支持 client_encoding,但目前唯一支持的值是 "utf8"。
由于修改起来相当简单,您可以手动更改 pg gem 中使用的值,或者您可以向项目的 GitHub 提交 CockroachDB 问题:http://github.com/cockroachdb/cockroach/issues/
CockroachDB 目前不能与 ActiveRecord 一起使用,但我们希望在不久的将来支持它。我们正在跟踪与 ORM 功能相关的问题 on GitHub。
要补充 Nathan 的回答,即 CockroachDB 还不能与 ActiveRecord 一起使用,值得一提的是,CockroachDB 目前可通过较低级别的客户端使用,例如 Ruby's pg client。
CockroachDB 现在与 Active Record 兼容:
https://www.cockroachlabs.com/blog/build-an-app-with-active-record-cockroachdb/
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?谢谢!
CockroachDB 确实支持 client_encoding,但目前唯一支持的值是 "utf8"。
由于修改起来相当简单,您可以手动更改 pg gem 中使用的值,或者您可以向项目的 GitHub 提交 CockroachDB 问题:http://github.com/cockroachdb/cockroach/issues/
CockroachDB 目前不能与 ActiveRecord 一起使用,但我们希望在不久的将来支持它。我们正在跟踪与 ORM 功能相关的问题 on GitHub。
要补充 Nathan 的回答,即 CockroachDB 还不能与 ActiveRecord 一起使用,值得一提的是,CockroachDB 目前可通过较低级别的客户端使用,例如 Ruby's pg client。
CockroachDB 现在与 Active Record 兼容:
https://www.cockroachlabs.com/blog/build-an-app-with-active-record-cockroachdb/