从 ruby 迁移到 jruby

Migrating from ruby to jruby

我正在从 ruby-2.5.7 迁移到 jruby-9.2.12.0,当我 运行 bundle install 更改后 ruby-version & gemfile我在 pg-gem.

中收到错误
Installing pg 1.2.3 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: /Users/kush/.rvm/gems/jruby-9.2.12.0/gems/pg-1.2.3/ext
/Users/kush/.rvm/rubies/jruby-9.2.12.0/bin/jruby -I
/Users/kush/.rvm/rubies/jruby-9.2.12.0/lib/ruby/stdlib -r
./siteconf20200707-6808-16ipijl.rb extconf.rb
checking for pg_config... yes
Using config values from /usr/local/bin/pg_config
RuntimeError: The compiler failed to generate an executable file.
You have to install development tools first.

try_do at
/Users/kush/.rvm/rubies/jruby-9.2.12.0/lib/ruby/stdlib/mkmf.rb:456
try_link0 at
/Users/kush/.rvm/rubies/jruby-9.2.12.0/lib/ruby/stdlib/mkmf.rb:541
try_link at
/Users/kush/.rvm/rubies/jruby-9.2.12.0/lib/ruby/stdlib/mkmf.rb:556
     <main> at extconf.rb:40
*** extconf.rb failed ***

我已经安装了开发人员工具并且在我的 mac 中也有 Xcode。

非常感谢任何帮助!

pggem 对 MRI 高度特定(即“标准”ruby)并且与 JRuby 不兼容。因此,您应该在此处使用不同的数据库适配器。

JRuby 中最常用的适配器是基于 JDBC 的。对于大多数数据库类型,JRuby 都有可用的包装器。要使用与 Rails 一起使用的 PostgreSQL 适配器,您可以将它与 activerecord-jdbcpostgresql-adapter gem 一起使用。为此,替换

gem "pg"

您的 Gemfile 行与

gem "activerecord-jdbcpostgresql-adapter"

有关配置和使用的详细信息,请参阅 https://github.com/jruby/activerecord-jdbc-adapter/blob/master/README.md