I am facing a error when I run any migration as:
raj@notebook-pc:~/Desktop/Projects/invoicemanagement$ rails g migration RemoveDescriptionOfGoodsFromInvoiceDetails description_of_goods:string
Warning: You're using Rubygems 1.8.23 with Spring. Upgrade to at least Rubygems 2.1.0 and run `gem pristine --all` for better startup performance.
/var/lib/gems/1.9.1/gems/bundler-1.9.0/lib/bundler/runtime.rb:34:in `block in setup': You have already activated spring 1.3.3, but your Gemfile requires spring 1.3.2. Prepending `bundle exec` to your command may solve this. (Gem::LoadError)
from /var/lib/gems/1.9.1/gems/bundler-1.9.0/lib/bundler/runtime.rb:19:in `setup'
** 11 stack trace lines skipped **
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
So with some googling I run bundle update spring, which solved the above error, and I am able to remove/add migrations. Again if I run rake db:migrate, I am getting error as:
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:
undefined method `to_sym' for nil:NilClass/var/lib/gems/1.9.1/gems/activerecord-4.1.4/lib/active_record/connection_adapters/abstract/schema_definitions.rb:216:in `column'
** 33 stack trace lines skipped **
/var/lib/gems/1.9.1/gems/activerecord-4.1.4/lib/active_record/railties/databases.rake:34:in `block (2 levels) in <top (required)>'
Tasks: TOP => db:migrate
Please help me.
After running
bundle update
and updating Spring, I was getting the following error when running the console:I followed the recommendations in this Github issue and ran:
This fixed the issue for me.
I had a similar problem trying to run rails commands outside of my docker container.
In my case, my Gemfile.lock file said to use Spring (1.3.4), but the error message said my server was running version 1.3.5. Prepending my command with
bundle exec
didn't make any difference either. By runninggem list | grep spring
I noticed I had multiple versions installed. After I ran
gem uninstall spring -v '1.3.5'
and
bundle
again, it worked perfectly.Who knows, I may have needed the newer version for some other project at some time.
Stop the spring server
Run: ps aux | grep spring, then kill the spring process.
It worked for me.
This happens because one of the dependencies of your project is an older version of Spring than is installed on your system:
The correct way to deal with this is to prepend
bundle exec
to your command, as the error message indicates. Please see below:http://yehudakatz.com/2011/05/30/gem-versioning-and-bundler-doing-it-right/
Running
bundle update
can cause some other issues. If your second error persists, you might want to revert to your oldGemfile
from version control.try running "bundle update" in your terminal, then try "rails console" again as usual - i had this same issue , running bundle update first fixed it for me!