2010-05-07 27 views
54

J'ai actuellement la dernière version de mon code sur un autre ordinateur que je veux développer (ordinateur à la maison et ordinateur portable pour quand je suis dehors et dehors) J'ai installé heroku pour mon application sur mon ordinateur portable. Maintenant, j'ai besoin d'associer mon code sur mon bureau pour que je puisse pousser à heroku à partir de là aussi.Comment puis-je transférer une application Heroku existante vers un nouvel emplacement pour le développement?

C'est ce que je reçois de mon bureau:

desktop:~/NetBeansProjects/onlinescheduler$ git pull heroku master 
fatal: 'heroku' does not appear to be a git repository 
fatal: The remote end hung up unexpectedly 

Je ne peux pas faire heroku create parce que cela va créer une application séparée. Comment puis-je associer le code existant avec (ou tirer une toute nouvelle version de) heroku?

Quelle est la commande pour faire ceci?

Répondre

42

Tout d'abord, vous aurez envie de suivre les instructions de démarrage rapide pour Heroku, que vous pouvez obtenir directement de la bouche du cheval, ici: https://devcenter.heroku.com/articles/quickstart

Une fois que vous avez obtenu à l'étape 3, revenir ici.

Ensuite, vous pouvez taper ceci dans la ligne de commande: heroku git:clone -a myapp

Ceci est décrit ici: https://devcenter.heroku.com/articles/git-clone-heroku-app

Ensuite, si vous voulez saisir la base de données aussi, voici quelques options. Les nouvelles instructions Heroku sur l'import/export: https://devcenter.heroku.com/articles/heroku-postgres-import-export

plus Instructions Heroku sur traction et poussée: https://blog.heroku.com/archives/2009/3/18/push_and_pull_databases_to_and_from_heroku

Si vous utilisez mongo, c'est un outil utile pour synchroniser votre base de données mongo: https://github.com/pedro/heroku-mongo-sync#readme

+1

mis à jour pour refléter la nouvelle méthode d'importation/exportation. – ogoldberg

+0

Sur import/export Notez également les pgbackups Heroku: commande de transfert est très utile 'Heroku $ pgbackups: transfert --help' ' Utilisation: Heroku pgbackups: transfert [SOURCE LA BASE DE DONNÉES] DESTINATION database' ' Heroku $ pgbackups: transfert vert sarcelle --app exemple' –

+0

@JonathonBatson Salut, pouvons-nous cloner d'autres applications existantes? –

111

Aussi, si vous ne l'avez jamais utilisé heroku avant de l'autre machine, vous aurez besoin de faire quelques petites choses d'abord:

$ gem install heroku
$ heroku login 
[then enter your credentials]
$ heroku keys:add [path to keyfile]

Maintenant, vous pouvez cloner la télécommande dépôt:

$ git clone [email protected]:<heroku_app>.git <local_directory>
+0

+1 C'est également très utile et bienvenue à StackOverflow, Gayle :) – DJTripleThreat

+0

cela me donne une « erreur interne du serveur! » Lors de l'ajout de la clé locale (un autre de l'un de celle de mon autre machine). Des idées? – elgrego

+0

sauvé mon bacon. Merci! –

0

une fois que vous créez une clé dans un nouvel ordinateur, vous devez télécharger votre nouveau en tapant heroku keys:add clé SSH.

3

Si vous devez d'abord obtenir l'application d'Heroku, clonez votre application.

Pour ce faire, écrire dans votre terminal:

heroku git:clone -a your_app_name 

Si vous avez déjà l'application et la télécommande pour Heroku suivre les étapes suivantes.Sinon, vous pouvez vérifier les instructions ici https://devcenter.heroku.com/articles/git

  1. Trouvez le nom de votre base de données

Ecrire dans votre terminal:

heroku pg:info -a your_app_name 

il ressemblera à quelque chose comme ceci:

HEROKU_POSTGRESQL_MAROON_URL 
  1. Fi e le nom de votre base de données locale

Dans votre application Rails aller à config/database.yml

il ressemblera à quelque chose comme ceci:

your_app_name_development 
  1. Clone votre base de données de production (PostgreSQL)

Ecrire dans votre terminal avec votre propre Databa noms soi:

heroku pg:pull HEROKU_POSTGRESQL_MAROON_URL your_app_name_development -a your_app_name 

HEROKU_POSTGRESQL_MAROON_URL est un exemple de la façon dont pourrait être le nom de votre base de données de production (en Heroku): my_app_name_development est le nom de votre base de données de développement (localement) de the_name_of_my_app est le nom de votre application dans Heroku

ne pas oublier de terminer ce paquet avec l'installation ...

+0

'HEROKU_POSTGRESQL_MAROON_URL' ne fonctionnera pas pour la plupart des gens car leur variable url bash pourrait être différente. Suggérez de modifier votre message afin que la commande soit plus générique. – DJTripleThreat

+0

Oui, on dit "ça va ressembler à ça" Mais, merci quand même pour votre suggestion! Je l'ai mis à jour pour être plus précis. – georgecodes