MySQLproblem - RAILS_ENV=production bundle exec rake db:migrate
11,891
Solution 1
You seem to be including the mysql
gem when you loop through the adapters
in your Gemfile
. You should be good to go once you remove the following line from your Gemfile
:
gem "rake", "0.8.7"
gem "rack", "1.4.5"
gem "i18n", "0.6.4"
gem "rubytree", "0.5.2", :require => "tree"
gem "RedCloth", "~>4.2.3", :require => "redcloth" # for CodeRay
gem "mysql" # <---------------- Remove this line.
Solution 2
Remove the first gem "mysql"
on line 8 of your gemfile because the db gems are included automaticly based on which adapter your using. Then run bundle
again and retry.
Solution 3
The error message is pretty clear. You have the mysql gem in multiple places. One on top and one from the case statement
Author by
Jan Motyčák
Updated on June 04, 2022Comments
-
Jan Motyčák almost 2 years
I am just installing the redmine to my server due to detailed manual. Everything gone fine but one of the last step fail with some bug and I have no idea how to fix it.
Command is
RAILS_ENV=production bundle exec rake db:migrate
Output error
You cannot specify the same gem twice with different version requirements. You specified: mysql (>= 0) and mysql (~> 2.9.1)
gem list
*** LOCAL GEMS *** actionmailer (3.2.15) actionpack (3.2.15) activemodel (3.2.15) activerecord (3.2.15) activeresource (3.2.15) activesupport (3.2.15) arel (3.0.3) bigdecimal (1.2.0) builder (3.0.0) bundler (1.3.5) capybara (2.1.0) childprocess (0.3.9) coderay (1.1.0) daemon_controller (1.1.7) database_cleaner (1.2.0) erubis (2.7.0) ffi (1.9.3) hike (1.2.3) hoe (3.7.1) i18n (0.6.4) io-console (0.4.2) journey (1.0.4) jquery-rails (2.0.3) json (1.8.1, 1.7.7) mail (2.5.4) metaclass (0.0.1) mime-types (1.25.1) mini_portile (0.5.2) minitest (4.3.2) mocha (0.14.0) multi_json (1.8.2) mysql (2.9.1) net-ldap (0.3.1) nokogiri (1.6.0) passenger (4.0.25) polyglot (0.3.3) psych (2.0.0) rack (1.5.2, 1.4.5) rack-cache (1.2) rack-openid (1.4.1) rack-ssl (1.3.3) rack-test (0.6.2) rails (3.2.15) railties (3.2.15) rake (0.9.6, 0.8.7) rdoc (4.0.0, 3.12.2) RedCloth (4.2.9) rmagick (2.13.2) ruby-openid (2.3.0) rubygems-update (2.1.11) rubytree (0.5.2) rubyzip (1.0.0) selenium-webdriver (2.37.0) shoulda (3.3.2) shoulda-context (1.0.2) shoulda-matchers (1.4.1) sprockets (2.2.2) test-unit (2.0.0.0) thor (0.18.1) tilt (1.4.1) treetop (1.4.15) tzinfo (0.3.38) websocket (1.0.7) xpath (2.0.0) yard (0.8.7.3)
Gemfile
source 'https://rubygems.org' gem "rake", "0.8.7" gem "rack", "1.4.5" gem "i18n", "0.6.4" gem "rubytree", "0.5.2", :require => "tree" gem "RedCloth", "~>4.2.3", :require => "redcloth" # for CodeRay gem "mysql" gem "rails", "3.2.15" gem "jquery-rails", "~> 2.0.2" gem "coderay", "~> 1.1.0" gem "fastercsv", "~> 1.5.0", :platforms => [:mri_18, :mingw_18, :jruby] gem "builder", "3.0.0" # Optional gem for LDAP authentication group :ldap do gem "net-ldap", "~> 0.3.1" end # Optional gem for OpenID authentication group :openid do gem "ruby-openid", "~> 2.3.0", :require => "openid" gem "rack-openid" end # Optional gem for exporting the gantt to a PNG file, not supported with jruby platforms :mri, :mingw do group :rmagick do # RMagick 2 supports ruby 1.9 # RMagick 1 would be fine for ruby 1.8 but Bundler does not support # different requirements for the same gem on different platforms gem "rmagick", ">= 2.0.0" end end platforms :jruby do # jruby-openssl is bundled with JRuby 1.7.0 gem "jruby-openssl" if Object.const_defined?(:JRUBY_VERSION) && JRUBY_VERSION < '1.7.0' gem "activerecord-jdbc-adapter", "~> 1.3.2" end # Include database gems for the adapters found in the database # configuration file require 'erb' require 'yaml' database_file = File.join(File.dirname(__FILE__), "config/database.yml") 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 'mysql2' gem "mysql2", "~> 0.3.11", :platforms => [:mri, :mingw] gem "activerecord-jdbcmysql-adapter", :platforms => :jruby when 'mysql' gem "mysql", "~>2.9.1", :platforms => [:mri, :mingw] gem "activerecord-jdbcmysql-adapter", :platforms => :jruby when /postgresql/ gem "pg", ">= 0.11.0", :platforms => [:mri, :mingw] gem "activerecord-jdbcpostgresql-adapter", :platforms => :jruby when /sqlite3/ gem "sqlite3", :platforms => [:mri, :mingw] gem "activerecord-jdbcsqlite3-adapter", :platforms => :jruby when /sqlserver/ gem "tiny_tds", "~> 0.5.1", :platforms => [:mri, :mingw] gem "activerecord-sqlserver-adapter", :platforms => [:mri, :mingw] else warn("Unknown database adapter `#{adapter}` found in config/database.yml, use Gemfile.local to load your own database gems") end end else warn("No adapter found in config/database.yml, please configure it first") end else warn("Please configure your config/database.yml first") end group :development do gem "rdoc", ">= 2.4.2" gem "yard" end group :test do gem "shoulda", "~> 3.3.2" gem "mocha", ">= 0.14", :require => 'mocha/api' if RUBY_VERSION >= '1.9.3' gem "capybara", "~> 2.1.0" gem "selenium-webdriver" gem "database_cleaner" end end local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local") if File.exists?(local_gemfile) puts "Loading Gemfile.local ..." if $DEBUG # `ruby -d` or `bundle -v` instance_eval File.read(local_gemfile) end # Load plugins' Gemfiles Dir.glob File.expand_path("../plugins/*/Gemfile", __FILE__) do |file| puts "Loading #{file} ..." if $DEBUG # `ruby -d` or `bundle -v` #TODO: switch to "eval_gemfile file" when bundler >= 1.2.0 will be required (rails 4) instance_eval File.read(file), file end
Thank you for any answer.
Nice day Jan