Heroku push to production - ruby-on-rails

I set up my staging and production environments on heroku, and pushed to both and it worked fine. I came back a day later and was able to push to staging but got the following message about git push production master:
fatal: 'production' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

To confirm where each remote points to, login to Heroku and open the settings to your app and then match the git URL of the app to the ones displayed by git remote -v. Then, if necessary, add a remote for production (i.e. heroku).

Related

Error pushing to Heroku after adding new domain

I recently added a new GoDaddy domain to my rails app.
Everything works fine when I push to git but when I try to push to Heroku using:
$ git push heroku
I get the following error:
fatal: 'heroku' does not appear to be a git repository
fatal: Could not read from remote repository
Please make sure you have the correct access rights and the repository exists.
Is this problem occurring because I need to create another environment? The domain name for my GoDaddy website is listed under '$ heroku domains' but doesn't seem to be connected.
Any ideas would be helpful. TIA!
As for your comment on answer below, its obvious that you should try
git push prod master instead of git push heroku
'heroku' and 'prod' it's just names of remote repositories. Heroku by default creates repos named accordingly - 'heroku'. As far as I know it could be changed to whatever you need
This issue is probably unrelated to godaddy. Try typing
git remote -v
this will give you a list of the remote repositories you have setup. If none are pointing to your app on heroku you'll need to set it up.
Refer to this on article from heroku dev center
https://devcenter.heroku.com/articles/git
EDIT
As i suspected your heroku remote is named "prod" not "heroku" try 'git push prod' that should work.
You might have to specify the branch in which case the command would be 'git push prod master'
EDIT2
It looks your are not yet authorized to push to heroku. The root problem can vary. I recommend starting with this article:
https://devcenter.heroku.com/articles/keys
Also check this SO article
git push heroku master Write failed: Connection reset by peer

Cannot git push to heroku master for ruby.railstutorial.org

I am working on the ruby.railstutorial.org and I am having all sorts of trouble getting my first_app to push from git to heroku. I have tried the solutions listed below but keep getting back the same error messages.
Solutions I have tried:
git push heroku master gives error ssh: connect to host heroku.com port 22: Connection refused
git push heroku master gives error ssh: connect to host heroku.com port 22: Connection refused
I have tried precompiling as:
$ rake assets:precompile
$ git add .
$ git commit -m "Add precompiled assets for Heroku"
and getting a new ssh key. I can't seem to get anything to work. Here is what I am getting:
Coreys-MacBook-Pro:first_app coreydavis$ heroku create
Creating radiant-oasis-3729... done, stack is cedar
http://radiant-oasis-3729.herokuapp.com/ | git#heroku.com:radiant-oasis-3729.git
Coreys-MacBook-Pro:first_app coreydavis$ git push heroku master
ssh: connect to host heroku.com port 22: Connection refused
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
I know the repository exists and I have access, I can't figure out what I am missing here.
Any help would be great, I am very, very new to this and don't totally understand what is going wrong despite my reading and google searches. Thanks so much.
You need to assign a public key to your Heroku account, as described in their docs.
Also, double-check that the git remote is actually the Heroku app repository that you expect it to be.
$ git remote -v
You should see your Heroku app name in the list that comes out of this command.
Another thing to check is that you are not behind a firewall that is blocking port 22. That would be unusual, but not unheard of. There are also various software that will block access to AWS/EC2; make sure you're not running anything like that since Heroku runs on EC2.
I've had this issue before. If you're public key is missing the error usually indicates it. Make sure that you've logged into your GitHub account and created the new repository there first. Then run the following on the command line:
git init
git commit
git remote add origin https://github.com/username/your_repository_name.git
git push
#you should be prompted to enter your github credentials
#your code will then be pushed to your github repository
git push heroku
#heroku will fetch your your github repository and install to your heroku instance
heroku open
#this will open your heroku instance in a new browser window.
Good luck!!
If you created multiple apps you'll still only have your original as the remote.
git remote -v
shows you what your remotes are named and the url. Usually you'll have it named origin and you can remove it with:
git remote rm origin
Then you need to add the new heroku app name:
git remote add origin <URL to new heroku app>
Finally push your app:
git push -u origin master
The -u tag will mark it as tracked.

Can't push on heroku

I’ve just cloned one of my repositories on github, I've made some changes and I would like to send it on the heroku application. But when I try to run git push heroku master, I get :
fatal: 'heroku' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
What can I do to solve it?
This is because there's no remote named heroku. You can see your remotes by typing git remote -v. For my 'example' app I see the following:
$ git remote -v
heroku git#heroku.com:example.git (fetch)
heroku git#heroku.com:example.git (push)
If it's missing, you can add the remote with the following command:
git remote add heroku git#heroku.com:example.git
where example is the name of your heroku app.
Before you can do
$ git push heroku master
you need to setup heroku by following the steps given at Getting Started with Heroku. Once you have setup heroku, logged in,created your app.
Verify that git remote is added
$ git remote -v
it should list a remote named heroku. if it does then the error heroku' does not appear to be a git repository will go away
If you have followed the steps in tutorial you just need to login in again:
cmd "heroke login"

How to set up an additional server in Heroku?

I want to set up a new Heroku server for QA purposes.
I've done most of the pieces but I've missed something:
1) I made a new app using the CLI Heroku toolbelt:
heroku apps:create myapp-qa
2) I made a copy of the existing git repostory on my local machine:
git clone git#github.com:me/myapp.git
3) Added the remote for the aq server:
git remote add myapp-qa git#github.com:myrepo/myapp.git
3) I then tried to push my new app with:
cd myapp
git push myapp-qa master
I got the message "already up-to-date"
4) If I go to the app in a browser to http://myapp-qa.herokuapp.com/ it says "Heroku | Welcome to your new app!" instead of showing any of my application pages.
What did I miss?
Heroku has a plugin specifically designed for this.
https://github.com/heroku/heroku-pipeline
It allows you to specify a "pipeline" of servers
Dev -> Staging -> Production and allows you to deploy to dev, then promote that build to staging, then promote that to production.
Setup needed to be:
git remote add myapp-qa git#heroku.com:myapp-qa.git
git push origin myapp-qa

Rails3 & Git & Heroku - development/staging server

I have a Rails 3 app I'm developing with a team using Git/Github and deploying to a Heroku cedar stack. Our Github respository has 2 main branches Master and Development.
I would like to push our Development branch regularly to a different server on Heroku as a development/staging environment.
What's the cleanest simplest way to push our Development branch to a different app than Master without disrupting our Git flow much?
Thanks a lot!
You'll want to add a second git remote i.e. your second application's heroku git repo url to your app to be able to push to that from a single codebase.
At the moment you probably have the default remote origin named 'heroku' which is pushing to your production application.
You'll want to add a second remote origin pointing at your new heroku app that you intend to use for staging, eg
git remote add staging <git repo url from 'my apps' page on heroku>
once you have the new git origin set up you can push to it via;
git push staging <branch to deploy>:master
Simple. Heroku always uses the master branch, but using Git will allow you to push /your/ development branch, to /their/ master
For instance:
git push heroku development:master
where heroku is your origin for your heroku development env, and development is your local development branch. You might also want to override the RACK_ENV var on Heroku too if you don't want your dev branch running in production mode (although, personally I would create a staging environment in your code which does caching etc, but not send email to production addresses etc)
heroku_san is a Gem which allows complex deploy configurations when using Heroku, without the need to constantly specify which Heroku app you wish to push to on the command line. It would allow you to do exactly what you describe above.

Resources