[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 876
  • Last Modified:

Active record already activated

I am using MediaTemple rails hosting and when I am trying to run my application I get this from my mongrel log:

** Daemonized, any open files are closed.  Look at log/mongrel.pid and log/mongrel.log for info.
** Starting Mongrel listening at 0.0.0.0:2013
** Starting Rails with production environment...
/home/66747/data/rubygems/lib/rubygems.rb:149:in `activate': can't activate activerecord (= 2.3.2, runtime), already activated activerecord-2.1.0 (Gem::Exception)
      from /home/66747/data/rubygems/lib/rubygems/custom_require.rb:35:in `require'
      from /home/66747/containers/rails/bestqualitypools/config/../vendor/rails/railties/lib/initializer.rb:222:in `require_frameworks'
      from /home/66747/containers/rails/bestqualitypools/config/../vendor/rails/railties/lib/initializer.rb:222:in `each'
      from /home/66747/containers/rails/bestqualitypools/config/../vendor/rails/railties/lib/initializer.rb:222:in `require_frameworks'
      from /home/66747/containers/rails/bestqualitypools/config/../vendor/rails/railties/lib/initializer.rb:113:in `process'
      from /home/66747/containers/rails/bestqualitypools/config/../vendor/rails/railties/lib/initializer.rb:93:in `send'
      from /home/66747/containers/rails/bestqualitypools/config/../vendor/rails/railties/lib/initializer.rb:93:in `run'
      from /home/66747/containers/rails/bestqualitypools/config/environment.rb:14
       ... 11 levels...
      from /home/66747/data/rubygems/gems/gems/mongrel-1.1.5-x86-linux/bin/../lib/mongrel/command.rb:212:in `run'
      from /home/66747/data/rubygems/gems/gems/mongrel-1.1.5-x86-linux/bin/mongrel_rails:281
      from /home/66747/data/rubygems/gems/bin/mongrel_rails:19:in `load'
      from /home/66747/data/rubygems/gems/bin/mongrel_rails:19


I have tried running "gem cleanup" and when I type in "gem list" I get:

*** LOCAL GEMS ***

actionmailer (2.3.2)
actionpack (2.3.2)
activerecord (2.3.2)
activeresource (2.3.2)
activesupport (2.3.2)
cgi_multipart_eof_fix (2.5.0)
daemons (1.0.10)
fastthread (1.0.1)
gem_plugin (0.2.3)
mongrel (1.1.5)
mysql (2.7)
postgres (0.7.9.2008.01.28)
rails (2.3.2)
rake (0.8.4)
rmagick (1.15.15)
validatable (1.6.7)

Any ideas on what I can do? My database config looks like:

production:
  adapter: mysql
  database: db66747_bestqualitypools_production
  username: db66747_pools
  password: pw_here
  host: internal-db.s66747.gridserver.com

The username does have read/write permissions and the database is completed.

Not sure what else to do, i have googled the problem and checked on various google groups.

Thanks,

Ryan
0
catonthecouchproductions
Asked:
catonthecouchproductions
  • 14
  • 9
1 Solution
 
wesgarrisonCommented:
Do you have any gems unpacked in your application?  Maybe you unpacked 2.1 into vendor/gems and have 2.3.2 required?

Do you have AR specified twice in your environment.rb file?  Check out the lines with "config.gem".
0
 
catonthecouchproductionsAuthor Commented:
>>Do you have any gems unpacked in your application?  Maybe you unpacked 2.1 into vendor/gems and have 2.3.2 required?

How would I check this? I am fairly new with Ruby on Rails.

Here is my environment.rb: http://pastie.org/467269

Thanks,

Ryan

0
 
wesgarrisonCommented:
# Specifies gem version of Rails to use when vendor/rails is not present
RAILS_GEM_VERSION = '2.1.2' unless defined? RAILS_GEM_VERSION

This says "use version 2.1.2" but your gem list doesn't show that 2.1.2 is installed.

Either:
* (sudo) gem install rails -v 2.1.2
* Change the RAILS_GEM_VERSION to be 2.3.2

The first is safer, because you don't know if your application will work on the new version without some tweaking.
0
[Webinar] Kill tickets & tabs using PowerShell

Are you tired of cycling through the same browser tabs everyday to close the same repetitive tickets? In this webinar JumpCloud will show how you can leverage RESTful APIs to build your own PowerShell modules to kill tickets & tabs using the PowerShell command Invoke-RestMethod.

 
catonthecouchproductionsAuthor Commented:
Now that is is going to go through and install that version do I need to go through and remove my other versions of active record?
0
 
wesgarrisonCommented:
No.  Rails will use the one specified in the file.
0
 
catonthecouchproductionsAuthor Commented:
Alrighty, now when I try to start my application I get:

** Daemonized, any open files are closed.  Look at log/mongrel.pid and log/mongrel.log for info.
** Starting Mongrel listening at 0.0.0.0:2013
** Starting Rails with production environment...
/home/66747/data/rubygems/lib/rubygems.rb:149:in `activate': can't activate activerecord (= 2.1.2, runtime), already activated activerecord-2.1.0 (Gem::Exception)
      from /home/66747/data/rubygems/lib/rubygems/custom_require.rb:35:in `require'
      from /home/66747/containers/rails/bestqualitypools/config/../vendor/rails/railties/lib/initializer.rb:222:in `require_frameworks'
      from /home/66747/containers/rails/bestqualitypools/config/../vendor/rails/railties/lib/initializer.rb:222:in `each'
      from /home/66747/containers/rails/bestqualitypools/config/../vendor/rails/railties/lib/initializer.rb:222:in `require_frameworks'
      from /home/66747/containers/rails/bestqualitypools/config/../vendor/rails/railties/lib/initializer.rb:113:in `process'
      from /home/66747/containers/rails/bestqualitypools/config/../vendor/rails/railties/lib/initializer.rb:93:in `send'
      from /home/66747/containers/rails/bestqualitypools/config/../vendor/rails/railties/lib/initializer.rb:93:in `run'
      from /home/66747/containers/rails/bestqualitypools/config/environment.rb:14
       ... 11 levels...
      from /home/66747/data/rubygems/gems/gems/mongrel-1.1.5-x86-linux/bin/../lib/mongrel/command.rb:212:in `run'
      from /home/66747/data/rubygems/gems/gems/mongrel-1.1.5-x86-linux/bin/mongrel_rails:281
      from /home/66747/data/rubygems/gems/bin/mongrel_rails:19:in `load'
      from /home/66747/data/rubygems/gems/bin/mongrel_rails:19

And my gem list is now:

actionmailer (2.1.2)
actionpack (2.1.2)
activerecord (2.1.2)
activeresource (2.1.2)
activesupport (2.1.2)
cgi_multipart_eof_fix (2.5.0)
daemons (1.0.10)
fastthread (1.0.1)
gem_plugin (0.2.3)
mongrel (1.1.5)
mysql (2.7)
postgres (0.7.9.2008.01.28)
rails (2.3.2, 2.1.2)
rake (0.8.4)
rmagick (1.15.15)
validatable (1.6.7)

And in my environment:

RAILS_GEM_VERSION = '2.1.2' unless defined? RAILS_GEM_VERSION


0
 
wesgarrisonCommented:
Do you have a folder "rails" in your "vendor" directory?  

If so, you can try removing it.

If not, you can unpack rails with:
rake rails:freeze:gems

That'll unpack it into the vendor/rails directory so that you KNOW what version is running.
0
 
catonthecouchproductionsAuthor Commented:
I tried deleting it via FTP, but it got caught up on deleting the folder "Argentina" I will try using the code.
0
 
catonthecouchproductionsAuthor Commented:
When I run:

"rake rails:freeze:gems"

I get:

"rake aborted!
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
/home/66747/data/rubygems/gems/gems/rake-0.8.4/lib/rake.rb:2353:in `raw_load_rakefile'
(See full trace by running task with --trace)
"

There is "Rakefile" inside application directory in the root.
0
 
wesgarrisonCommented:
Yeah, FTP would be slow.
SSH would be better if that's an option.
0
 
catonthecouchproductionsAuthor Commented:
Inside my vendor/rails directory I have:

activesupport/
railties/

It gets hung up like I said on the Argentia folder within activesupport/ - language folder maybe?
0
 
catonthecouchproductionsAuthor Commented:
I am SSH in to the server now. How would I run an FTP to delete? I can check the MT control panel for that.

Ryan
0
 
wesgarrisonCommented:
Just nuke the whole vendor/rails folder:
rm -rf vendor/rails/

... from the application's base directory.

Then, try the rake freeze command, again from the application's base directory.
0
 
catonthecouchproductionsAuthor Commented:
Nice! That worked, now running, the rake freeze (what does this do by the way?)

I get:

Freezing to the gems for Rails 2.3.2
rm -rf vendor/rails
mkdir -p vendor/rails
cd vendor/rails
ERROR:  Gem 'activesupport' not installed.
mv  activesupport
rm -rf vendor/rails
rake aborted!
undefined method `to_str' for nil:NilClass

(See full trace by running task with --trace)

Should I run gem install activesupport?
0
 
wesgarrisonCommented:
Freezing takes the gems and unpacks them to the vendor/rails directory so that the application is frozen ("locked") to running that version.  You wouldn't need the gems installed on a machine that way.

Huh.  Your gem list --local from above shows activesupport.

Check it again:
gem list --local

Do you see:
  activesupport (2.1.2)

If you run the 'gem install' you'll get the latest version, not 2.1.2, fyi.

0
 
wesgarrisonCommented:
Try this to force using 2.1.2:

rake rails:freeze:edge RELEASE=2.1.2
0
 
catonthecouchproductionsAuthor Commented:
When I run that command I get:

activesupport (2.1.2)

I do have that installed, not sure why that is not running.
0
 
catonthecouchproductionsAuthor Commented:
Well then...aren't you just the ror guru ;)

I ran that and I got:

bestqualitypools.info@n11:/home/66747/containers/rails/bestqualitypools$ rake rails:freeze:edge RELEASE=2.1.2
(in /nfs/c04/h04/mnt/66747/containers/rails/bestqualitypools)
cd vendor
Downloading Rails from http://dev.rubyonrails.org/archives/rails_2.1.2.zip
Unpacking Rails
rm -rf rails
rm -f rails.zip
rm -f rails/Rakefile
rm -f rails/cleanlogs.sh
rm -f rails/pushgems.rb
rm -f rails/release.rb
cd -
Updating current scripts, javascripts, and configuration settings
0
 
catonthecouchproductionsAuthor Commented:
Let me try starting my application and see what my log reports.
0
 
catonthecouchproductionsAuthor Commented:
Amazing..that worked like a charm!

So it was the activerecord causing the problem?
0
 
catonthecouchproductionsAuthor Commented:
Great help! Very quick
0
 
wesgarrisonCommented:
Dunno.  Maybe your vendor/rails was incomplete so it couldn't find activesupport.
0
 
catonthecouchproductionsAuthor Commented:
Yeah..I wonder what it was. Specifying the rake command worked great.
0

Featured Post

[Webinar] Improve your customer journey

A positive customer journey is important in attracting and retaining business. To improve this experience, you can use Google Maps APIs to increase checkout conversions, boost user engagement, and optimize order fulfillment. Learn how in this webinar presented by Dito.

  • 14
  • 9
Tackle projects and never again get stuck behind a technical roadblock.
Join Now