gpt4 book ai didi

ruby - "Please install the mysql2 adapter"

转载 作者:太空宇宙 更新时间:2023-11-03 16:05:35 26 4
gpt4 key购买 nike

我正在尝试关注这个 Redmine setup tutorial .当我开始启动服务器时,我输入 sudo rails server 并收到以下错误:

Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter` (mysql2 is not part of the bundle. Add it to Gemfile.) (LoadError)

我的 Gemfile 的相关部分是这样的:

....
if File.exist?(database_file)
database_config = YAML::load(ERB.new(IO.read(database_file)).result)
adapters = database_config.values.map {|c| c['adapter']}.compact.uniq
if adapters.any?
adapters.each do |adapter|
case adapter
when /mysql/
gem "mysql", "~> 2.8.1", :platforms => [:mri_18, :mingw_18]
gem "mysql2", "~> 0.3.11", :platforms => [:mri_19, :mingw_19]
gem "activerecord-jdbcmysql-adapter", :platforms => :jruby
...

并且 Gemfile.lock 包含 mysql2:

...
multi_json (1.5.0)
mysql (2.8.1)
mysql2 (0.3.11)
net-ldap (0.3.1)
...

我的 database.yml 文件包含以下内容:

...
production:
adapter: mysql2
database: redmine
host: localhost
username: ****
password: ****

development:
adapter: mysql2
database: redmine_development
host: localhost
username: ****
password: ****
encoding: utf8
...

运行 bundle install 似乎成功了,但是输出中没有列出 mysql2,which mysql2 什么都不返回,bundle show mysql2 返回在当前包中找不到 gem 'mysql2'。

我已经卸载并重新安装了 mysql2 gem,每次都明显成功。

我已经通读了关于其他 stackoverflow 问题的类似问题的描述,但他们的解决方案都没有解决我的问题。

最佳答案

如果 mysql2 未包含在 bundle 生成的 Gemfile.lock 文件中,您将收到此错误。 Gemfile 用于管理依赖项,而锁文件是 Rails 应用程序实际加载的文件。

这是一个比我以前见过的更冗长的 Gemfile(我一般不熟悉 Redmine)- 这是从哪里来的?它似乎不是来自最新的稳定来源。如果您知道您将使用 mysql2,我认为您没有任何理由需要 Gemfile 来解析您的数据库配置。无论出于何种原因,它都没有正确读取 database.yml 文件。

尝试在任何 block 或循环之外添加 gem 'mysql2' 并再次运行 bundle

关于ruby - "Please install the mysql2 adapter",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14639670/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com