user2090411
user2090411

Reputation: 31

Trying to deploy to heroku and switching sqlite -> pg- Error when i rake:db

So, I am trying to change my app which runs fine locally on SQLite3 to Postgresql so I can deploy it to Heroku. I've looked at various posts and tutorials and made the adjustments to my Gem file and database.yml files but when I try to rake:db migrate, I get the error message : "Please install the postgresql adapter." I know that most users encounter this when they don't include gem 'pg' in their gemfile but I did include it.

This is the full error message I get: http://dpaste.com/hold/972379/

Can you please help? I've really looked at dozens of posts and tried every configuration.

My procfile looks like this:

web: bundle exec thin start -p $PORT

My database.yml looks like this:

development:
  adapter: postgresql
  encoding: utf8
  database: project_development
  pool: 5
  username: 
  password:

test: &TEST
  adapter: postgresql
  encoding: utf8
  database: project_test
  pool: 5
  username: 
  password:

production:
  adapter: postgresql
  encoding: utf8
  database: project_production
  pool: 5
  username: 
  password:

My gemfile looks like this:

source 'https://rubygems.org'

gem 'rails', '3.2.11'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

gem 'thin'
group :production do
gem 'pg'
end
group :development, :test do
gem 'sqlite3'
end

# Gems used only for assets and not required
# in production environments by default.

gem 'jquery-rails'

# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'

# To use Jbuilder templates for JSON
# gem 'jbuilder'

# Use unicorn as the app server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger
# gem 'debugger'

One note: when I run bundle install, 'Using pg' does not come up but I think it is because it's not in production... just FYI in case it's important

EDIT: gem pg seems to run fine once in production with heroku. not sure what is going on though, since once it's deployed, it doesn't work. Here's my heroku log (I've taken out my e-mail):

2013-02-23T05:37:08+00:00 heroku[api]: Enable Logplex by [email protected]
2013-02-23T05:37:08+00:00 heroku[api]: Release v2 created by [email protected]
2013-02-23T05:37:18+00:00 heroku[slugc]: Slug compilation started
2013-02-23T05:38:28+00:00 heroku[api]: Scale to web=1 by [email protected]
2013-02-23T05:38:28+00:00 heroku[api]: Attach HEROKU_POSTGRESQL_WHITE resource by [email protected]
2013-02-23T05:38:28+00:00 heroku[api]: Release v3 created by [email protected]
2013-02-23T05:38:29+00:00 heroku[api]: Add DATABASE_URL config by [email protected]
2013-02-23T05:38:29+00:00 heroku[api]: Release v4 created by [email protected]
2013-02-23T05:38:29+00:00 heroku[api]: Add  config by [email protected]
2013-02-23T05:38:29+00:00 heroku[api]: Release v5 created by [email protected]
2013-02-23T05:38:29+00:00 heroku[api]: Release v6 created by [email protected]
2013-02-23T05:38:29+00:00 heroku[api]: Deploy cd00730 by [email protected]
2013-02-23T05:38:30+00:00 heroku[slugc]: Slug compilation finished
2013-02-23T05:38:30+00:00 heroku[web.1]: Starting process with command `bundle exec thin start -p 55861`
2013-02-23T05:38:31+00:00 heroku[web.1]: Starting process with command `bundle exec thin start -p 55416`
2013-02-23T05:38:31+00:00 app[web.1]: bash: bundle: command not found
2013-02-23T05:38:32+00:00 heroku[web.1]: Process exited with status 127
2013-02-23T05:38:34+00:00 app[web.1]: DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/config/environment.rb:5)
2013-02-23T05:38:34+00:00 app[web.1]: DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/config/environment.rb:5)
2013-02-23T05:38:34+00:00 app[web.1]: DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/config/environment.rb:5)
2013-02-23T05:38:37+00:00 app[web.1]: >> Using rack adapter
2013-02-23T05:38:37+00:00 app[web.1]: Connecting to database specified by DATABASE_URL
2013-02-23T05:38:37+00:00 app[web.1]: >> Maximum connections set to 1024
2013-02-23T05:38:37+00:00 app[web.1]: >> Thin web server (v1.5.0 codename Knife)
2013-02-23T05:38:37+00:00 app[web.1]: >> Listening on 0.0.0.0:55416, CTRL+C to stop
2013-02-23T05:38:38+00:00 heroku[web.1]: State changed from starting to up
2013-02-23T05:39:00+00:00 heroku[api]: Starting process with command `bundle exec rake db:migrate` by [email protected]
2013-02-23T05:39:02+00:00 heroku[run.3422]: Awaiting client
2013-02-23T05:39:02+00:00 heroku[run.3422]: Starting process with command `bundle exec rake db:migrate`
2013-02-23T05:39:02+00:00 heroku[run.3422]: State changed from starting to up
2013-02-23T05:39:07+00:00 heroku[run.3422]: Client connection closed. Sending SIGHUP to all processes
2013-02-23T05:39:08+00:00 heroku[run.3422]: Process exited with status 0
2013-02-23T05:39:08+00:00 heroku[run.3422]: State changed from up to complete
2013-02-23T05:39:14+00:00 app[web.1]: Started GET "/" for 67.80.190.0 at 2013-02-23 05:39:14 +0000
2013-02-23T05:39:15+00:00 app[web.1]: Processing by LooksController#index as HTML
2013-02-23T05:39:15+00:00 app[web.1]:   Rendered looks/index.html.erb within layouts/application (7.7ms)
2013-02-23T05:39:16+00:00 heroku[router]: at=info method=GET path=/ host=quiet-everglades-5513.herokuapp.com fwd="67.80.190.0" dyno=web.1 queue=0 wait=1ms connect=2ms service=1385ms status=500 bytes=643
2013-02-23T05:39:16+00:00 heroku[router]: at=info method=GET path=/favicon.ico host=quiet-everglades-5513.herokuapp.com fwd="67.80.190.0" dyno=web.1 queue=0 wait=0ms connect=1ms service=7ms status=200 bytes=0
2013-02-23T05:39:16+00:00 app[web.1]: 
2013-02-23T05:39:16+00:00 app[web.1]:     5:   <%= stylesheet_link_tag    "application", :media => "all" %>
2013-02-23T05:39:16+00:00 app[web.1]:     8: </head>
2013-02-23T05:39:16+00:00 app[web.1]: Completed 500 Internal Server Error in 925ms
2013-02-23T05:39:16+00:00 app[web.1]:   app/controllers/looks_controller.rb:7:in `index'
2013-02-23T05:39:16+00:00 app[web.1]:     3: <head>
2013-02-23T05:39:16+00:00 app[web.1]: ActionView::Template::Error (no such file to load -- uglifier
2013-02-23T05:39:16+00:00 app[web.1]:   (in /app/app/assets/javascripts/application.js)):
2013-02-23T05:39:16+00:00 app[web.1]:   app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb___1708027661978307033_32644180'
2013-02-23T05:39:16+00:00 app[web.1]: 
2013-02-23T05:39:16+00:00 app[web.1]:     6:   <%= javascript_include_tag "application" %>
2013-02-23T05:39:16+00:00 app[web.1]: 
2013-02-23T05:39:16+00:00 app[web.1]:     7:   <%= csrf_meta_tags %>
2013-02-23T05:39:16+00:00 app[web.1]:     9: <body>
2013-02-23T05:39:16+00:00 app[web.1]:     4:   <title>Scout</title>

Upvotes: 0

Views: 288

Answers (2)

user176060
user176060

Reputation:

The log file you provided mentions another error

ActionView::Template::Error (no such file to load -- uglifier
  (in /app/app/assets/javascripts/application.js)):
app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb___1708027661978307033_32644180'

uglifier is a gem used for precompiling assets and optimizing those. On my app it is in the assets group by default, which means it won't be available in production.

I'm not entirely familiar with Heroku, but they have some information about using the asset pipeline that might be helpful. You should also make sure you are on the Heroku "Cedar" stack.

Or, if you're not using the asset pipeline, disable it

Upvotes: 1

Austin Lin
Austin Lin

Reputation: 2564

Here's what you need to do:

  1. Download the Command Line tools for your version of mac os from here https://developer.apple.com/downloads/index.action

  2. Install the Command Line tools you downloaded

  3. Restart Terminal

  4. Run bundle install again (with the pg gem in the default group).

That should eliminate the error you are getting when installing pg. After getting it installed run rake db:migrate again and it should work.

Upvotes: 0

Related Questions