I have been learning Ruby on Rails with heroku from an online tutorial. Everything has been working fine. However, my latest attempt to update my heroku site has failed.
i've run:
"git push heroku master"
and
"heroku run rake db:migrate"
however, my local changes are not updating.
note: the only changes that don't seem to be taking affect are database updates. for instance, i can update the home file and see its changes on heroku, but i can't login to a new user account with devise.
Related
I would like to ask a question about heroku and rails. As I am kind of new to rails I want to know how it works with Heroku. I have an app and would like to push it to heroku.
I know that, rails takes all js/css files and compress when you are in production mode. My problem is, when I change js or css locally and push back to same heroku app, how rails handles these changes. It would be so stupid to destroy heroku app and push again.
Everytime you make changes to your application locally you should run "bundle exec rake assets:precompile RAILS_ENV=production". This will compile your assets in the public folder and then you should commit them to git . Then upon running "git push heroku master" you will see your new assets on the deployed app once it is reloaded.
As far as destroying the app. goes, when pushing changes it is only restarted. Your database and all else are kept in tact.
I'm working through the odin project's web development course and I'm getting tripped up on the last part of the installations project where you are tasked with deploying a rails app to Heroku. I've been working on this for about a week but I refuse to give up but I realize that I need some help.
Here's the link to the tutorial I'm trying to work through (on a mac):
http://installfest.railsbridge.org/installfest/deploy_a_rails_app
I have a Heroku account set up, and am running Ruby 2.3.0 and rails 4.2.5.1. Rubygems are at 2.6.1 (but I tried them at 2.5.1 too).
Everything works fine but when I get to heroku run rake db:migrate I always get the time out error:
[~/railsbridge/test_app] ruby-2.3.0 $ git push heroku master
Everything up-to-date
[~/railsbridge/test_app] ruby-2.3.0 $ heroku run rake db:migrate
Running rake db:migrate on powerful-journey-35824... up, run.9421
▸ ETIMEDOUT: connect ETIMEDOUT 50.19.103.36:5000
I saw another post suggesting that the problem is a result of the connection I'm using blocking port 5000 (I'm at a library). I checked port 5000 on canyouseeme.org as well but it also timed out.
I then tried deploying the app detached using heroku run:detached rake db:migrate and it seems to work until I open heroku again and it shows that the page I'm looking for doesn't exist.
Basically what I'm asking is, does anyone have any idea why this test app isn't getting pushed from my terminal to the heroku deployment page?
I'm a python/django guy, but taking a guess the "everything up to date" message is likely because you have not commited your changes to git. Try:
git commit -a
git push heroku master
Now run your rake command.
I hope life's great and you're busy coding.
I am following mhartl's Rails tutorial for I am really eager to learn RoR for web app development. I tried to troubleshoot by starting from scratch several times which had me going through the pain of creating new bitbucket repos and so on. Anyways I felt you guys probably faced this already so you might be able to help.
After all the steps in the tutorial, up to 2.1, which is
$ git commit -am "Add hello"
$ heroku create
$ git push heroku master
and seems to be successful given the shell message below:
remote: https://fast-sea-56609.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.
To https://git.heroku.com/fast-sea-56609.git
* [new branch] master -> master
when I go to the URL, I get this screenshot with the message
The page you were looking for doesn't exist.
I checked this post Unable to see Ruby on Rails App deployed on Heroku? and I solved the localhost:3000 db migration thingy so now I have localhost:3000/users displaying properly but the heroku url does not display any different.
Tell me if I can provide more informations or run anything to help you troubleshoot. Thanks for the time you spent on reading this rather than doing anything else.
As you have mentioned that you are following Michael Hartl Rails Tutorial I suggest you to complete each task or chapter till the end.
Here the problem caused might be because you missed a part of your tutorial, that the autor ask you to complete the first applications step again with your toy application like bellow:
I suggest doing by following the same “hello, world!” steps in Listing 1.8 and Listing 1.9.1(Did you do these steps in your application before committing and pushing to heroku ?) Then commit the changes and push up to Heroku:
$ git commit -am "Add hello"
$ heroku create
$ git push heroku master
Once you finish making the first working copy of you Rails app in local the next step is to deploy it in heroku to test your app in production environment.
Yo can follow the official Heroku guide to know more about deploying an application into heroku
from this link.
You said you ran rake db:migrate on your local machine. But did you run it on heroku as well?
heroku run rake db:migrate
Remember you need to call this command each time you add new migration to your rails project and push the changes to heroku.
Be sure to check heroku logs for other errors:
heroku logs
I'm trying to push my Rails app to Heroku, and I'm at the point where I'm trying to create/migrate the database, but I cannot get the rake command to run. Here's the message I'm getting:
$ heroku run rake db:migrate
Running `rake db:migrate` attached to terminal... up, run.2439
bash: rake: command not found
I spent a lot of time getting Postgres set up on my local machine, and it's working fine (was able to run rake commands without issue, and the app is running locally), but I don't know why I'm getting this error when I try to migrate the heroku database.
Figured it out. Turns out I had an error when I tried to deploy the app to Heroku, so it was never deployed. I didn't realize this because I was trying to push a branch that was not the "master" branch to heroku, thinking it would be fine. I wasn't getting any errors on that push, but that's because heroku won't try to deploy anything other than the "master" branch. Once I pushed the "master" branch, I got a bunch of pre-compile errors. Once those were cleaned up, I the app was deployed properly and I was able to run the rake commands.
Long story short, make sure your app successfully deployed before trying to run rake commands.
This is a basic, stupid question, but I configured my Rails app to deploy on Heroku, and I'm able to open the application from my Heroku account, etc. But when I want to change my code, do I need to re-deploy the whole application? I tried just committing/pushing to heroku master, but I get the error "fatal: remote end hung up unexpectedly." What should I do instead?
Also: am I supposed to run db:migrate BEFORE deploying/pushing?
There is nothing stupid about a basic question, as everyone has to start somewhere.
The basic process with deploying a Rails app to Heroku is to:
Make changes
Add and Commit your changes ($ git add files_changed.rb & $ git commit -m "make changes")
Push your changes to Heroku ($ git push heroku master)
This then pushes your code to the remote Heroku repository and redeploys your Rails application. If you have made any database migrations, you need to run:
$ heroku run rake db:migrate
This runs db:migrate on your heroku app - see how that works? :)
Running rake db:migrate locally simply migrates your local development database.