Heroku - Application Error - ruby-on-rails

I've created simple application with Ruby on Rails and I’ve tried to commit it on Heroku. I’ve followed this Getting Started on Heroku guide,
I finished it and try to open my page but I still see an Error:
Application Error:
An error occurred in the application and your page could not be
served. Please try again in a few moments.
If you are the application owner, check your logs for details.
Anybody know how to deal with it?
I don’t know what was happen but I’ve done this step, unfortunately I have another problem, I run a few commands:
# git add .
# git commit -m "my commit"
On branch master nothing to commit (working directory clean)
# git push heroku
master Everything up-to-date
# heroku open Opening
http ://eerie-meadow-9207.heroku.com/
# heroku restart
Restarting processes... done
# heroku open Opening
http ://eerie-meadow-9207.heroku.com/
And I see a message:
We're sorry, but something went wrong.
We've been notified about this issue and we'll take a look at it shortly.
From heroku logs [timestamps removed for clarity]:
app[web.1]: Started GET "/" for 77.236.11.34 at 2011-10-31 11:50:38 -0700
app[web.1]: Processing by StoreController#index as HTML
app[web.1]: Completed 500 Internal Server Error in 3ms
heroku[router]: GET eerie-meadow-9207.heroku.com/ dyno=web.1 queue=0 wait=0ms service=13ms status=500 bytes=728
heroku[nginx]: 77.236.11.34 - - [31/Oct/2011:11:50:38 -0700] "GET / HTTP/1.1" 500 728 "-" "Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.2.23) Gecko/20110921 Ubuntu/10.04 (lucid) Firefox/3.6.23" eerie-meadow-9207.heroku.com
app[web.1]:
heroku[web.1]: State changed from up to bouncing
heroku[web.1]: State changed from bouncing to created
heroku[web.1]: State changed from created to starting
heroku[web.1]: Starting process with command `thin -p 40376 -e production -R /home/heroku_rack/heroku.ru start`
heroku[web.1]: Process exited
app[web.1]: >> Maximum connections set to 1024
app[web.1]: >> Listening on 0.0.0.0:40376, CTRL+C to stop
app[web.1]: >> Thin web server (v1.2.6 codename Crazy Delicious)
heroku[web.1]: State changed from starting to up
app[web.1]:
app[web.1]: Started GET "/" for 77.236.11.34 at 2011-10-31 11:50:59-0700
app[web.1]:
app[web.1]: Processing by StoreController#index as HTML
app[web.1]: Completed 500 Internal Server Error in 4ms
app[web.1]:
app[web.1]: ActiveRecord::StatementInvalid (PGError: ERROR: relation "products" does not exist
app[web.1]: : SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
app[web.1]: FROM pg_attribute a LEFT JOIN pg_attrdef d
app[web.1]: ON a.attrelid = d.adrelid AND a.attnum = d.adnum
app[web.1]: WHERE a.attrelid = '"products"'::regclass
app[web.1]: AND a.attnum > 0 AND NOT a.attisdropped
app[web.1]: ORDER BY a.attnum
app[web.1]: ):
app[web.1]: app/controllers/store_controller.rb:3:in `index'
app[web.1]:
app[web.1]:
app[web.1]: cache: [GET /] miss
heroku[router]: GET eerie-meadow-9207.heroku.com/ dyno=web.1 queue=0 wait=0ms service=81ms status=500 bytes=728
heroku[nginx]: 77.236.11.34 - - [31/Oct/2011:11:50:59 -0700] "GET / HTTP/1.1" 500 728 "-" "Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.2.23) Gecko/20110921 Ubuntu/10.04 (lucid) Firefox/3.6.23" eerie-meadow-9207.heroku.com
app[web.1]:
app[web.1]:
app[web.1]: Started GET "/" for 77.236.11.34 at 2011-10-31 11:54:00-0700
app[web.1]: Processing by StoreController#index as HTML
I cannot understand it because on my netbook it works on localhost, any ideas?

Try using the command
heroku run rake db:migrate

Try restarting your app with heroku restart. Assuming your app runs fine locally, this should do the trick. It solved the issue for me as I only refactored the schema and the db:reset did not seem to do the trick.

Most of the time heroku issues are due to lack of privileges to access file system. In order for your application to work on heroku you must make sure it wont try to write anything to disk (but in temporary folder).
The typical example is js/css compiling process, e.g. with compass, for which you will find a solution on their knowledge database: http://devcenter.heroku.com/articles/using-compass
You should look further in the heroku logs see if there is any "permission denied" issue at application startup or during the first requests.

http://www.youtube.com/watch?v=p_3dIPgXgkg
If you already have your application built, go to the point in the video when he begins pushing the sample app to heroku. Unfortunately heroku returns hard to solve errors when uploading 3.1 apps for the first time. Follow the troubleshooting steps in the video and you'll be fine.

I had this issue when I was starting to create a discord bot and make it online. And I figured out the reason for this was using the node latest current version(v17.1), I wasted about 2 days for this and tried downgrading node version to v16.7.And to my surprise it worked!.
So I recommend downgrading to v16.7 or the latest LTS version when you are checking this and do install the current latest version
https://nodejs.org/ca/blog/release/v16.7.0/
Here's the full code
const { Client, Intents } = require('discord.js');
const { token } = require('./config.json');
// Create a new client instance
const client = new Client({ intents: [Intents.FLAGS.GUILDS] });
// WShen the client is ready, run this code (only once)
client.once('ready', () => {
console.log('Ready!');
});
// Login to Discord with your client's token
client.login(token);
const http = require('http');
const PORT = process.env.PORT || 3000;
const requestListener = function (req, res) {
res.writeHead(200);
res.end('Bot is up and running');
}
const server = http.createServer(requestListener);
server.listen(PORT);
setInterval(function() {
http.get("http://<your app name>.herokuapp.com");
}, 300000); // every 5 minutes (300000)
Note:Last 3 lines of this code is completely additional and what they do is stop heroku from putting app to sleep every 30 minutes

I had the same problem. Have a look at your Procfile and check if you have added the proper command in it such as web: python run.py. I wasn't able to connect then I placed the command heroku logs --tail to see what was the problem and I saw that within my Procfile I had a type mistake such as >>>web: oython run.py<<< making the app not work. So, pay attention to it. command: $echo web: python run.py > Procfile

Just make sure that in the data base, you have allowed "any IP Address" to connect. This is called whitelisting the IP Address. Example: 0.0.0/0. This is because Heroku, each time it spins up, uses a different IP address. But you can change it later using Heroku docs and the docs of your Database service provider.
https://i.stack.imgur.com/Ud2VJ.png
You can use this image as an example which is a screenshot of MongoDB Atlas

Before you start please allow access to your DB network from anywhere.
Well I have also faced this "Application error" problem once
that time I used these command lines
git init
git add .
git commit -m "my first commit"
heroku create YourAppName
git push heroku main
But as you know I got the "Application error"
Then I used these commands
heroku config:set NPM_CONFIG_PRODUCTION=false
git add .
git commit -m "my first commit"
git push heroku main
After that "Application error" problem was solved.
Well, I'm not sure if it works for you or not but I guess you can try at least.

Related

Deploying rails app with realtime-rails gem and redis on Heroku

I have built a rails app following the model presented here:
http://mikeatlas.github.io/realtime-rails/
I am using Rails with the realtime-rails gem and redis. My application is working in my development environment and i want to move it to Heroku. I have already setup a Redis database at Redis-to-go and I now want to make whatever changes are necessary for the realtime-gem and associated socket-io server setup. At a minimum, I will need to modify the production portion of my application_controller:
def realtime_server_url
if Rails.env.development?
return 'HTTPLOCALHOST:5001'
end
if Rails.env.production?
return 'PRODUCION-LOCATION'
end
end
I have deployed the socket-io server (realtime-server) that is installed by instructions from the link above for realtime-server to a separate heroku instance. I then made the PRODUCION-LOCATION that url for the realtime -server dyno with port 5001 and both http and https. No joy.
Following the instructions the realtime-server folder was created at the top level of my project folder, parallel to the app folder. Does this mean i should include it in the main repository and somehow have it run from the same dyno as the app? If so, how do i go about starting it? The instructions say to start it by locally with:
cd realtime-server
foreman start
Not clear that I can do that through the heroku cli will be able to run in the same instance and how is it started.
=============
Update
Found documentation on heroku that made me realize, I need to set the REDISCLOUD_URL for the heroku dyno running the realtime-server using:
heroku config:add REDISCLOUD_URL='redis_cloud_url'
and that in production it wasnt using the 5001 port:
if (process.env.NODE_ENV != 'production') {
port = 5001; // run on a different port when in non-production mode.
}
Also, found form console log that the realtime-server was enforcing HTTPS.
Now, the blocking issue seems to be the request of /socket.io/socket.io.js from the realtime-server which returns:
503 (Service Unavailable)
So far, it seems that separating the realtime-server from the rails app repository was the right move.
Looking through the code for the realtime-server to determine how that is routed...
================
Update
i looked at the logs on your advice, thanks. saw that the realtime-server was crashing because it wasnt liking the port, so I tried to set the PORT variable 443, 3000, 5001 variously to no avail using:
heroku config:add PORT='443'
based on this code from the enviornment.js file of the realtime-server:
var port = process.env.PORT || 5001;
if (process.env.NODE_ENV != 'production') {
port = 5001; // run on a different port when in non-production mode.
}
here is an excerpt of logs:
2015-02-22T19:26:45.512317+00:00 heroku[api]: Set PORT config vars by tmt#breakthroughtek.com
2015-02-22T19:26:45.512317+00:00 heroku[api]: Release v5 created by tmt#breakthroughtek.com
2015-02-22T19:26:45.754327+00:00 heroku[web.1]: State changed from crashed to starting
2015-02-22T19:26:48.318928+00:00 heroku[web.1]: Starting process with command `node forever.js`
2015-02-22T19:26:49.540190+00:00 app[web.1]: Detected 512 MB available memory, 512 MB limit per process (WEB_MEMORY)
2015-02-22T19:26:49.540213+00:00 app[web.1]: Recommending WEB_CONCURRENCY=1
2015-02-22T19:26:49.957808+00:00 app[web.1]: STARTING ON PORT: 5001
2015-02-22T19:27:44.163425+00:00 heroku[api]: Scale to web=1 by tmt#breakthroughtek.com
2015-02-22T19:27:48.811493+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2015-02-22T19:27:48.811551+00:00 heroku[web.1]: Stopping process with SIGKILL
2015-02-22T19:27:49.561043+00:00 heroku[web.1]: State changed from starting to crashed
2015-02-22T19:27:49.561720+00:00 heroku[web.1]: State changed from crashed to starting
2015-02-22T19:27:49.534451+00:00 heroku[web.1]: Process exited with status 137
2015-02-22T19:27:51.936860+00:00 heroku[web.1]: Starting process with command `node forever.js`
2015-02-22T19:27:53.289025+00:00 app[web.1]: Detected 512 MB available memory, 512 MB limit per process (WEB_MEMORY)
2015-02-22T19:27:53.289046+00:00 app[web.1]: Recommending WEB_CONCURRENCY=1
2015-02-22T19:27:53.703573+00:00 app[web.1]: STARTING ON PORT: 5001
2015-02-22T19:28:51.991836+00:00 heroku[web.1]: Stopping process with SIGKILL
2015-02-22T19:28:51.991836+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2015-02-22T19:28:52.758191+00:00 heroku[web.1]: Process exited with status 137
2015-02-22T19:28:52.764783+00:00 heroku[web.1]: State changed from starting to crashed
2015-02-22T19:31:22.240362+00:00 heroku[api]: Set PORT config vars by tmt#breakthroughtek.com
2015-02-22T19:31:22.240362+00:00 heroku[api]: Release v6 created by tmt#breakthroughtek.com
2015-02-22T19:31:22.378770+00:00 heroku[web.1]: State changed from crashed to starting
2015-02-22T19:31:24.766187+00:00 heroku[web.1]: Starting process with command `node forever.js`
2015-02-22T19:31:26.316332+00:00 app[web.1]: Detected 512 MB available memory, 512 MB limit per process (WEB_MEMORY)
2015-02-22T19:31:26.316353+00:00 app[web.1]: Recommending WEB_CONCURRENCY=1
2015-02-22T19:31:26.717561+00:00 app[web.1]: STARTING ON PORT: 5001
===========
Update
looking at the logs and seeing the system was still picking port 5001, I checked the heroku environement via :
heroku config
and saw that the NODE_ENV variable was not set. Did a:
heroku config:add NODE_ENV='production'
and now the js file is loading. YAY!!! .. Thanks, d.danailov :)
Have to resolve some issue with rails on heroku erring with a missing template error on access to the admin area:
2015-02-22T20:04:36.492199+00:00 app[web.1]: Processing by LocationsController#index as HTML
2015-02-22T20:04:36.497052+00:00 app[web.1]: * "/app/app/views"
2015-02-22T20:04:36.497054+00:00 app[web.1]: * "/app/vendor/bundle/ruby/2.0.0/gems/devise-3.4.1/app/views"
2015-02-22T20:04:36.497059+00:00 app[web.1]: app/controllers/locations_controller.rb:8:in `index'
2015-02-22T20:04:36.497050+00:00 app[web.1]: ActionView::MissingTemplate (Missing template locations/index, application/index with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}. Searched in:
2015-02-22T20:04:36.497062+00:00 app[web.1]:
2015-02-22T20:04:36.497057+00:00 app[web.1]: ):
2015-02-22T20:04:36.497060+00:00 app[web.1]:
2015-02-22T20:04:36.497056+00:00 app[web.1]: * "/app/vendor/bundle/ruby/2.0.0/gems/realtime-0.0.12/app/views"
And of course, the page is working fine in development. So I am going to start with the assumption it has something to do with sprockets/asset pipeline.
But i think this portion may be solved. I will close once I verify I can send realtime msgs.
=============
Update
SOLVED: beware you dont use redis elsewhere in your app.
HEADS UP: i had a sneaky little Redis.new in an initializer that was wiping out my Redis config settings.
most of the solution was setting the NODE_ENV & REDISCLOUD_URL vars for the realitme server running in a separate instance.

Ruby on Rails unicorn throws errors

I setup a droplet with Ruby on Rails on digitalocean and I removed the rails directory (App) and replaced it with the one I had locally. It is working fine, if I connect with ssh and go to the IP with the port 3000. However whenever I try to go to port 80, then it throws me an error:
http://prntscr.com/2qoljb
I have checked the logs and it says the following:
Rails Error: Unable to access log file. Please ensure that /home/rails/log/production.log exists and is chmod 0666. The log level has been raised to WARN and the output directed to STDERR until the problem is fixed.
Rails Error: Unable to access log file. Please ensure that /home/rails/log/production.log exists and is chmod 0666. The log level has been raised to WARN and the output directed to STDERR until the problem is fixed.
I, [2014-02-08T18:40:59.192086 #735] INFO -- : worker=1 ready
I, [2014-02-08T18:40:59.198211 #731] INFO -- : worker=0 ready
Started GET "/" for 188.193.201.119 at 2014-02-08 18:41:00 +0000
Processing by QuestionsController#index as HTML
Completed 500 Internal Server Error in 43ms
ActiveRecord::StatementInvalid (Could not find table 'users'):
app/controllers/application_controller.rb:18:in `current_user'
app/controllers/application_controller.rb:10:in `require_login'
Started GET "/" for 188.193.201.119 at 2014-02-08 18:41:01 +0000
Processing by QuestionsController#index as HTML
Completed 500 Internal Server Error in 47ms
ActiveRecord::StatementInvalid (Could not find table 'users'):
app/controllers/application_controller.rb:18:in `current_user'
app/controllers/application_controller.rb:10:in `require_login'
Started GET "/" for 188.193.201.119 at 2014-02-08 18:41:02 +0000
Processing by QuestionsController#index as HTML
Completed 500 Internal Server Error in 2ms
ActiveRecord::StatementInvalid (Could not find table 'users'):
app/controllers/application_controller.rb:18:in `current_user'
app/controllers/application_controller.rb:10:in `require_login'
Started GET "/" for 188.193.201.119 at 2014-02-08 18:41:02 +0000
Processing by QuestionsController#index as HTML
Completed 500 Internal Server Error in 2ms
ActiveRecord::StatementInvalid (Could not find table 'users'):
app/controllers/application_controller.rb:18:in `current_user'
app/controllers/application_controller.rb:10:in `require_login'
The tables should exist, as everything is working completely fine, if I manually type in the IP with port 3000...
Thanks for your help in advance
EDIT
After setting permissions and the owner I am getting the following error instead:
/usr/local/rvm/gems/ruby-2.0.0-p353/gems/bundler-1.3.5/lib/bundler/runtime.rb:216: warning: Insecure world writable dir /home/rails in PATH, mode 040777
/usr/local/rvm/gems/ruby-2.0.0-p353/gems/bundler-1.3.5/lib/bundler/runtime.rb:216: warning: Insecure world writable dir /home/rails in PATH, mode 040777
I, [2014-02-08T19:27:30.231141 #1984] INFO -- : worker=1 ready
I, [2014-02-08T19:27:30.292714 #1981] INFO -- : worker=0 ready
First two lines explicitly talk about wrong file permissions but the Unicorn process shoud run under the same user as log file created by. I guess the capistrano and Unicorn run under different users.
If you are not sure what users should be and you have no problems with security just run:
$ chmod 0666 /home/rails/log/production.log
Once you restart the Unicorn the issue should gone.
I would not care about the problem with the log file in the moment. I do not think that is the root cause.
What catches my eye is Could not find table 'users'. The app does not find a table users in the database or does not find the database at all. Did check your credentials to the production database in config/database.yml? Did you run migrations on the database? Perhaps connect to the production database and check if the schema looks like you expect it to be.

Deployng ElasticSearch on Heroku with Tire & Bonsai.io

I'm trying to setup the new Bonsai ElasticSearch heroku add-on, but until now I can just run the search on my local developement machine, as soon as deployed on Heroku the same search fails silently, or better, Rails logger doesn't log anything while I get a 500 Internal Server Error. This are relevant Heroku logs during the failing query (no evident errors found): https://gist.github.com/2867221
I'm looking for some advices on how troubleshoot that. For example, I set Tire.configure { logger 'elasticsearch.log', :level => 'debug' } on Bonsai initializer config/initializers/bonsai.rb like the following:
Tire.configure { logger 'elasticsearch.log', :level => 'debug' }
if ENV['BONSAI_INDEX_URL']
Tire.configure do
url "http://index.bonsai.io"
end
BONSAI_INDEX_NAME = ENV['BONSAI_INDEX_URL'][/[^\/]+$/]
else
app_name = Rails.application.class.parent_name.underscore.dasherize
app_env = Rails.env
BONSAI_INDEX_NAME = "#{app_name}-#{app_env}"
end
but it logs on a file, which is good for local but is not accessible after deployed.
Bonsai ElasticSearch is a pritty new on-testing addon, so I wonder if someone of you guys has already had some succesfully experiences deploing that on Heroku and can give me a feedback and some advices.
UPDATE
Setting up logger logger $stdout, :level => 'debug' into Tire.configure finally heroku can log something while it's failing search :
2012-06-04T21:36:26+00:00 heroku[router]: GET gitwatcher.com/categories?utf8=%E2%9C%93&query=Asynchronous+Web+Frameworks dyno=web.1 queue=0 wait=0ms service=32ms status=500 bytes=728
2012-06-04T21:36:26+00:00 heroku[nginx]: 93.34.212.216 - - [04/Jun/2012:21:36:26 +0000] "GET /categories?utf8=%E2%9C%93&query=Asynchronous+Web+Frameworks HTTP/1.1" 500 728 "http://gitwatcher.com/categories" "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:12.0) Gecko/20100101 Firefox/12.0" gitwatcher.com
2012-06-04T21:36:26+00:00 app[web.1]: # 2012-06-04 21:36:26:387 [_search] (["123456789"])
2012-06-04T21:36:26+00:00 app[web.1]: #
2012-06-04T21:36:26+00:00 app[web.1]: curl -X GET "http://index.bonsai.io/123456789/category/_search?load=true&pretty=true" -d '{"query":{"query_string":{"query":"Asynchronous Web Frameworks"}}}'
2012-06-04T21:36:26+00:00 app[web.1]:
2012-06-04T21:36:26+00:00 app[web.1]: # 2012-06-04 21:36:26:387 [200] (1 msec)
2012-06-04T21:36:26+00:00 app[web.1]:
... please see more on issue opened to https://github.com/karmi/tire/issues/365
Just for tracking purposes,
I'll report here (cat&past) the resolution I post on GitHub Tire issues:
DEFINETLY WORKS BY:
1) dropping out `to_indexed_json` from Category MongoID model ( at the opposit of README indication )
2) removing and re-adding Bonsai.io Heroku add-on
3) reindexing ElasticSearch by running `heroku run:detached rake environment tire:import CLASS='Category'`
... infact, if you just run rake environment tire:import CLASS='Category' FORCE=true it doesn't work on Heroku/Bonsai.io, becuse of Bonsai authorized operation :
2012-06-11T20:39:30+00:00 app[run.1]: curl -X DELETE http://index.bonsai.io/my-fake-index-11223344
2012-06-11T20:39:30+00:00 app[run.1]: # 2012-06-11 20:39:30:749 [401]
2012-06-11T20:39:30+00:00 app[run.1]: #
2012-06-11T20:39:30+00:00 app[run.1]: # "{\"error\": \"Not authorized: Some endpoints are admin-only, ask support#onemorecloud.com.\"}\n"
than if you want to reset/reindex your eventually dirty data, the only way is dropping the Bonsai add-on and recreate:
heroku addons:remove bonsai:test
heroku addons:add bonsai:test
That saied, I really had a dirty data indicated by :
BSON::InvalidObjectId (illegal ObjectId format: LAm-hNglS5mbrMzDlVVHCQ):
app/controllers/categories_controller.rb:25:in `index'
If you'll need the full gem stack to compare with other cases, here it is: https://gist.github.com/2912881

Heroku deployment issue

I'm following this tutorial, and have followed the steps to deploying to Heroku.
When I open the application from Heroku, this is what I get:
Heroku | Welcome to your new app!
Why isn't my application showing up?
EDIT: This is what I get when I run heroku logs:
$ heroku logs
←[36m2011-07-29T18:08:11+00:00 heroku[api]:←[0m Add-on add logging:basic by xyz#xyz.com
←[36m2011-07-29T18:08:11+00:00 heroku[api]:←[0m Release v1 created by xyz#xyz.com
←[36m2011-07-29T18:08:13+00:00 heroku[api]:←[0m Add-on update shared-database
←[36m2011-07-29T18:08:13+00:00 heroku[api]:←[0m Release v3 created by xyz#xyz.com
←[33m2011-07-29T18:08:45+00:00 heroku[slugc]:←[0m Slug compilation started
←[36m2011-07-29T18:09:37+00:00 heroku[api]:←[0m Deploy e04b0d1 by xyz#xyz.com
←[36m2011-07-29T18:09:37+00:00 heroku[api]:←[0m Release v4 created by xyz#xyz.com
←[32m2011-07-29T18:09:39+00:00 heroku[web.1]:←[0m State changed from created to
starting
←[33m2011-07-29T18:09:40+00:00 heroku[slugc]:←[0m Slug compilation finished
←[32m2011-07-29T18:09:41+00:00 heroku[web.1]:←[0m Starting process with command
`thin -p 59785 -e production -R /home/heroku_rack/heroku.ru start`
←[32m2011-07-29T18:09:44+00:00 app[web.1]:←[0m >> Maximum connections set to 102
4
←[32m2011-07-29T18:09:44+00:00 app[web.1]:←[0m >> Thin web server (v1.2.6 codena
me Crazy Delicious)
←[32m2011-07-29T18:09:44+00:00 app[web.1]:←[0m >> Listening on 0.0.0.0:59785, CT
RL+C to stop
←[32m2011-07-29T18:09:45+00:00 heroku[web.1]:←[0m State changed from starting to
up
←[35m2011-07-29T18:10:08+00:00 heroku[rake.1]:←[0m State changed from created to
starting
←[35m2011-07-29T18:10:10+00:00 app[rake.1]:←[0m Awaiting client
←[35m2011-07-29T18:10:11+00:00 heroku[rake.1]:←[0m State changed from starting t
o up
←[35m2011-07-29T18:10:11+00:00 heroku[rake.1]:←[0m Process exited
←[35m2011-07-29T18:10:12+00:00 heroku[rake.1]:←[0m State changed from up to comp
lete
←[33m2011-07-29T18:13:55+00:00 heroku[slugc]:←[0m Slug compilation started
←[36m2011-07-29T18:14:52+00:00 heroku[api]:←[0m Deploy dbed18f by xyz#xyz.com
←[36m2011-07-29T18:14:52+00:00 heroku[api]:←[0m Release v5 created by xyz#xyz.com
←[32m2011-07-29T18:14:52+00:00 heroku[web.1]:←[0m State changed from up to bounc
ing
←[32m2011-07-29T18:14:52+00:00 heroku[web.1]:←[0m State changed from bouncing to
created
←[32m2011-07-29T18:14:52+00:00 heroku[web.1]:←[0m State changed from created to
starting
←[33m2011-07-29T18:14:53+00:00 heroku[slugc]:←[0m Slug compilation finished
←[32m2011-07-29T18:14:54+00:00 heroku[web.1]:←[0m Stopping process with SIGTERM
←[32m2011-07-29T18:14:54+00:00 app[web.1]:←[0m >> Stopping ...
←[32m2011-07-29T18:14:55+00:00 heroku[web.1]:←[0m Process exited
←[32m2011-07-29T18:14:55+00:00 heroku[web.1]:←[0m Starting process with command
`thin -p 49961 -e production -R /home/heroku_rack/heroku.ru start`
←[32m2011-07-29T18:14:58+00:00 app[web.1]:←[0m >> Thin web server (v1.2.6 codena
me Crazy Delicious)
←[32m2011-07-29T18:14:58+00:00 app[web.1]:←[0m >> Maximum connections set to 102
4
←[32m2011-07-29T18:14:58+00:00 app[web.1]:←[0m >> Listening on 0.0.0.0:49961, CT
RL+C to stop
←[32m2011-07-29T18:14:59+00:00 heroku[web.1]:←[0m State changed from starting to
up
←[35m2011-07-29T18:15:21+00:00 heroku[rake.2]:←[0m State changed from created to
starting
←[35m2011-07-29T18:15:24+00:00 heroku[rake.2]:←[0m State changed from starting t
o up
←[35m2011-07-29T18:15:25+00:00 heroku[rake.2]:←[0m State changed from up to comp
lete
←[32m2011-07-29T18:17:47+00:00 app[web.1]:←[0m
←[32m2011-07-29T18:17:47+00:00 app[web.1]:←[0m
←[32m2011-07-29T18:17:47+00:00 app[web.1]:←[0m Started GET "/use
←[31m←[0m
←[32m2011-07-29T18:17:48+00:00 app[web.1]:←[0m Processing by UsersController#i
ndex as HTML
←[32m2011-07-29T18:17:48+00:00 app[web.1]:←[0m Completed 500 Internal Server Err
or in 61ms
←[32m2011-07-29T18:17:48+00:00 app[web.1]:←[0m
←[32m2011-07-29T18:17:48+00:00 app[web.1]:←[0m ActiveRecord::StatementInvalid (P
GError: ERROR: relation "users" does not exist
←[32m2011-07-29T18:17:48+00:00 app[web.1]:←[0m : SELECT "users".* FROM "users"):
←[32m2011-07-29T18:17:48+00:00 app[web.1]:←[0m app/controllers/users_controlle
r.rb:5:in `index'
←[32m2011-07-29T18:17:48+00:00 app[web.1]:←[0m
←[32m2011-07-29T18:17:48+00:00 app[web.1]:←[0m
←[32m2011-07-29T19:18:57+00:00 heroku[web.1]:←[0m Idling
←[32m2011-07-29T19:18:58+00:00 heroku[web.1]:←[0m State changed from up to down
←[32m2011-07-29T19:18:58+00:00 heroku[web.1]:←[0m Stopping process with SIGTERM
←[32m2011-07-29T19:18:58+00:00 app[web.1]:←[0m >> Stopping ...
←[32m2011-07-29T19:18:59+00:00 heroku[web.1]:←[0m Process exited
←[35m2011-08-02T07:38:42+00:00 heroku[rake.1]:←[0m State changed from created to
starting
←[35m2011-08-02T07:38:44+00:00 app[rake.1]:←[0m Awaiting client
←[35m2011-08-02T07:38:45+00:00 app[rake.1]:←[0m Starting process with command `r
ake db:migrate`
←[35m2011-08-02T07:38:45+00:00 heroku[rake.1]:←[0m State changed from starting t
o up
←[35m2011-08-02T07:38:45+00:00 heroku[rake.1]:←[0m Process exited
←[35m2011-08-02T07:38:46+00:00 heroku[rake.1]:←[0m State changed from up to comp
lete
←[33m2011-08-02T07:58:10+00:00 heroku[slugc]:←[0m Slug compilation started
←[36m2011-08-02T07:59:08+00:00 heroku[api]:←[0m Deploy e5db406 by xyz#xyz.com
←[36m2011-08-02T07:59:08+00:00 heroku[api]:←[0m Release v6 created by xyz#xyz.com
←[33m2011-08-02T07:59:11+00:00 heroku[slugc]:←[0m Slug compilation finished
←[35m2011-08-02T07:59:44+00:00 heroku[rake.2]:←[0m State changed from created to
starting
←[35m2011-08-02T07:59:46+00:00 app[rake.2]:←[0m Awaiting client
←[35m2011-08-02T07:59:46+00:00 app[rake.2]:←[0m Starting process with command `r
ake db:migrate`
←[35m2011-08-02T07:59:47+00:00 heroku[rake.2]:←[0m State changed from starting t
o up
←[35m2011-08-02T07:59:48+00:00 heroku[rake.2]:←[0m Process exited
←[35m2011-08-02T07:59:49+00:00 heroku[rake.2]:←[0m State changed from up to comp
lete
←[32m2011-08-02T08:00:27+00:00 heroku[web.1]:←[0m Unidling
←[32m2011-08-02T08:00:27+00:00 heroku[web.1]:←[0m State changed from down to cre
ated
←[32m2011-08-02T08:00:27+00:00 heroku[web.1]:←[0m State changed from created to
starting
←[32m2011-08-02T08:00:29+00:00 heroku[web.1]:←[0m Starting process with command
`thin -p 12972 -e production -R /home/heroku_rack/heroku.ru start`
←[32m2011-08-02T08:00:32+00:00 app[web.1]:←[0m >> Thin web server (v1.2.6 codena
me Crazy Delicious)
←[32m2011-08-02T08:00:32+00:00 app[web.1]:←[0m >> Maximum connections set to 102
4
←[32m2011-08-02T08:00:32+00:00 app[web.1]:←[0m >> Listening on 0.0.0.0:12972, CT
RL+C to stop
←[32m2011-08-02T08:00:32+00:00 heroku[web.1]:←[0m State changed from starting to
up
←[32m2011-08-02T09:01:44+00:00 heroku[web.1]:←[0m Idling
←[32m2011-08-02T09:01:45+00:00 heroku[web.1]:←[0m State changed from up to down
←[32m2011-08-02T09:01:46+00:00 heroku[web.1]:←[0m Stopping process with SIGTERM
←[32m2011-08-02T09:01:46+00:00 app[web.1]:←[0m >> Stopping ...
←[32m2011-08-02T09:01:46+00:00 heroku[web.1]:←[0m Process exited
Thanks.
From the logs it looks like you have not migrated your database, because it is looking for a table users. To migrate type this in 'heroku rake db:migrate VERSION=0' and then type 'heroku rake db:migrate'. Take a look here in heroku docs
http://devcenter.heroku.com/articles/database
under the 'Common Issues Migrating to PostgreSQL' section. Also checkout this
http://devcenter.heroku.com/articles/using-the-cli
, for all the commands that you can run from terminal. Since you are using heroku, try and get your local database to also be postgresql, will solve some minor problems later. Remember every time that you push files to heroku, you will want to migrate database, if you have changes something in database structure.
You can use:
heroku logs
to see what is currently happening on the server.
I think the easiest thing would be to start over. Go into the root of your app. Such as myapp and remove the git repo.
cd sites
cd myApp
git rm -r .git
Then log into Heroku and destroy your app in the CMS. After that create a new heroku rails app by going into your directory, creating a new repo, adding your directory, committing as master, creating a heroku app and then pushing to heroku.
git init
git add .
git commit -m 'master'
heroku create
heroku rename myApp
git push heroku master
Then you will need to run your migrations.
heroku rake db:migrate
And if you want to push data from your local machine to production you will want to use the taps gem but make sure you add that to your bundle.
gem 'taps'
And then run bundle again.
bundle
Then you can push your local data if need be.
heroku db:push
Abit late, but i encountered this issue. I was missing foreman in my gemfile
If you're following the railstutorial.org
comment out sqlite 3 (#gem 'sqlite3') in the Gemfile
then:
git add .
git commit -am "fix heroku"
git push heroku
Try this, delete your package.json then npm init. Delete your existing app in Heroku and push back the app with new package.json.

Heroku: see params and sql activity in logs?

When i view my heroku logs on the server (with heroku logs --tail --app myapp) i see something like this:
2011-06-21T14:09:25+00:00 app[web.1]: Started PUT "/reports/19.xml" for 77.89.149.137 at 2011-06-21 07:09:25 -0700
2011-06-21T14:09:25+00:00 heroku[router]: PUT myapp.heroku.com/reports/19.xml dyno=web.1 queue=0 wait=0ms service=7ms status=401 bytes=28
2011-06-21T14:09:26+00:00 heroku[nginx]: PUT /reports/19.xml HTTP/1.1 | 77.89.149.137 | 656 | http | 401
While in my local log i'd see something like this:
Started PUT "/reports/19" for 127.0.0.1 at 2011-06-21 15:27:01 +0100
Processing by ReportsController#update as XML
Parameters: {"report"=>{"workflow_status"=>"3"}, "id"=>"19"}
Person Load (0.9ms) SELECT "people".* FROM "people" WHERE "people"."email" = 'madeupemai#lkklj.com' LIMIT 1
Report Load (0.4ms) SELECT "reports".* FROM "reports" WHERE "reports"."id" = 19 LIMIT 1
DEPRECATION WARNING: Object#returning has been deprecated in favor of Object#tap. (called from update_report at /home/max/work/rails_apps/flamingo_container/flamingo/vendor/plugins/resource_this/lib/resource_this.rb:135)
Creating scope :open. Overwriting existing method Task.open.
Task Load (2.0ms) SELECT "tasks".* FROM "tasks" WHERE "tasks"."id" = 14 LIMIT 1
Completed 200 OK in 1648ms (Views: 568.2ms | ActiveRecord: 3.2ms)
Ie with a lot more information, particularly the params, info from the router, generated sql, any templates rendered etc etc.
Does anyone know how i can get my heroku log to be as verbose as my development one? I've done the following already:
1) Set the log level in the relevant (rails 3) environment file:
config.log_level = :debug
2) Told heroku to use a different logger level, as described on http://devcenter.heroku.com/articles/logging
heroku config:add LOG_LEVEL=DEBUG --app myapp #from CLI
Neither has made any difference...any ideas anyone?
thanks, max
You're essentially wanting to show the SQL / params output in the Heroku logs. You can do this by adding the line shown below to the config block within your production.rb file:
MyAppNameHere::Application.configure do
# add this line
config.logger = Logger.new(STDOUT)
end
By the way, setting the log level to debug just means that Rails.logger.debug will output to the logs when you're on Heroku
In your production.rb add config.log_level = :debug and redeploy. That will give you the same logs as development mode :)
The detailed log you want is generated by the function start_processing in log_subscriber.rb.
action_controller/log_subscriber.rb:
def start_processing(event)
payload = event.payload
params = payload[:params].except(*INTERNAL_PARAMS)
info " Processing by #{payload[:controller]}##{payload[:action]} as #{payload[:formats].first.to_s.upcase}"
info " Parameters: #{params.inspect}" unless params.empty?
end
I checked with rails 3.0.4 in development and production environment. In both environments, we have the detailed logs.
This is an info level log. That's why the debug log level is not changing the output.
I installed the plugin used by heroku rails_log_stdout (Heroku logging) but I still have the desired output.
Right now, I can't test with heroku to find out why you don't have all the logs.
In the heroku example (see Heroku logging, section log retrieval), we don't see the "Processing" and "Parameters" lines. I think that either this method is not called when the app is running on heroku (it is somehow disabled) or heroku skips logs starting with whitespaces. Could you try to log messages starting with whitespaces and see if heroku is showing them?
Rails doesn't generate those logs when in production mode. http://groups.google.com/group/heroku/browse_thread/thread/d778fafedc9a378a
The real problem is actually due to the way Heroku works in conjunction with rails. The right way to solve this is to add: gem 'rails_12factor', group: :production
See https://devcenter.heroku.com/articles/rails-integration-gems for more info on the matter
Looks like the puma server doesn't play well with Heroku. In my project, I tried everything, but it still wouldn't log. I then replaced Puma with Unicorn, and bam, full logs are being shown.

Resources