2012-09-18 12 views
50

Ho appena creato una semplice applicazione Rails utilizzandoHeroku aperto - senza applicazione specificato

rails new myapp 

poi creato la pila Heroku utilizzando:

heroku create --stack cedar 

ma quando provo aprendo l'app su Heroku utilizzando :

heroku open 

ottengo:

! No app specified. 
! Run this command from an app folder or specify which app to use with --app <app name> 

E questo:

$ heroku open --app myapp 

mi dà questo:

! App not found 

mi sto perdendo qualcosa di ovvio?

+0

Non è più necessario specificare lo stack di cedro, è il valore predefinito ora –

+0

Assicurarsi di scorrere verso il basso oltre le prime due risposte. [Questo] (http://stackoverflow.com/a/24816347/199712) è il migliore. –

risposta

118

Se si dispone di un'applicazione esistente su Heroku e hai trovato questo messaggio non applicazione specificato, è possibile correggere eseguendo questo sul vostro terminale locale:

heroku git:remote -a MyHerokuAppName

+5

Questo mi ha salvato la giornata. Ho appena cancellato il riferimento iniziale e l'ho eseguito. Grazie! – streetlight

+2

Questo è esattamente ciò di cui avevo bisogno. Io uso l'auto-distribuzione da un ramo git. Per una ragione non correlata avevo bisogno di formare un nuovo repository. Questo era esattamente ciò di cui avevo bisogno per risolverlo. Inoltre, quando volevo interagire con heroku da una macchina diversa (in realtà un ambiente cloud9 dev), questo semplice comando mi permette di connetterti e lavorare con heroku. – Llewey

24

Heroku di default non è la creazione di app con il tuo nome di directory, in modo che quando si fa

heroku create --stack cedar 
Creating calm-bayou-3229... done, stack is cedar 
http://calm-bayou-3229.herokuapp.com/ | [email protected]:calm-bayou-3229.git 

sta creando un'applicazione denominata 'calma-bayou-3229' e si può fare

heroku open --app calm-bayou-3229 
Opening http://calm-bayou-3229.herokuapp.com/ 

Puoi sempre elencare le tue app con:

heroku apps 
19

Un altro approccio al solv il problema è di comprendere a fondo il funzionamento del file .git/config associato all'app heroku e apportare le modifiche necessarie.

1.Open .git/config dalla radice del progetto heroku.

Il tuo file di configurazione git potrebbe essere simile a questo, specialmente se stai manipolando un paio di account heroku sulla tua macchina.

[email protected]{heroku.account} si presenta invece di [email protected] a causa della configurazione nel file ~/.ssh/config. Il riferimento a heroku-app-8396.git deve essere aggiornato per corrispondere al nome del tuo progetto heroku. Ogni account heroku di cui si dispone deve avere una voce nel file ~/.ssh/config. Ovviamente, l'account heroku a cui è associato questo progetto heroku dovrebbe apparire nel tuo file .git/config.

[core] 
    repositoryformatversion = 0 
    filemode = true 
    bare = false 
    logallrefupdates = true 
    ignorecase = true 
    precomposeunicode = false 
[remote "origin"] 
    fetch = +refs/heads/*:refs/remotes/origin/* 
    url = [email protected]:heroku-app-8396.git 
[remote "heroku"] 
    fetch = +refs/heads/*:refs/remotes/heroku/* 
    url = [email protected]:heroku-app-8396.git 
[branch "master"] 
    remote = origin 
    merge = refs/heads/master 
[heroku] 
    account = heroku.account 

2. Quando corro git pull heroku master, tutto sembra funzionare bene.

3.Quando corro heroku logs, ottengo un messaggio di errore:

$ heroku ps 
! No app specified. 
! Run this command from an app folder or specify which app to use with --app APP. 

Perché?

Per quanto posso dire, il comando heroku non sembra sapere cosa fare con i riferimenti {heroku.account}.Se cambiamo quei riferimenti a com (che è il valore predefinito quando non si utilizza il plugin Heroku 'conti'), i comandi heroku lavorare ancora una volta, ma ora i nostri git chiamate stai dicendo che c'è un problema diverso:

$ git pull heroku master 

! Your key with fingerprint d6:1b:4c:48:8c:52:d4:d6:f8:32:aa:1a:e7:0e:a2:a1 is not authorized to access smooth-robot-8396. 

fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 
and the repository exists. 

Un modo per risolvere questo è definire un telecomando per git e un telecomando per heroku e quindi dirlo a heroku quale telecomando da utilizzare.

[core] 
    repositoryformatversion = 0 
    filemode = true 
    bare = false 
    logallrefupdates = true 
    ignorecase = true 
    precomposeunicode = false 
[remote "origin"] 
    fetch = +refs/heads/*:refs/remotes/origin/* 
    url = [email protected]:heroku-app-8396.git 
[remote "heroku"] 
    fetch = +refs/heads/*:refs/remotes/heroku/* 
    url = [email protected]:heroku-app-8396.git 
[remote "heroku-app"] 
    fetch = +refs/heads/*:refs/remotes/heroku/* 
    url = [email protected]:heroku-app-8396.git 
[branch "master"] 
    remote = origin 
    merge = refs/heads/master 
[heroku] 
    remote = heroku-app 
    account = heroku.account 

mi piace per specificare esplicitamente il telecomando quando sto spingendo contenuti a un remoto, in modo il telecomando heroku è per questo, anche se questa configurazione anche ospita fino a spingere/tirare utilizzando il default (ad esempio, git push). Creo un nuovo 'heroku-app' remoto e aggiungo remote = heroku-app per comunicare a heroku di utilizzare un telecomando che non include l'account heroku nell'URI.

Ora posso eseguire i miei comandi git e heroku come desidero.

+0

Ha funzionato come un fascino :) grazie mille. – fsschmitt

+0

Potresti fornire un esempio di ~/.ssh/config? Sarebbe utile anche un esempio di come spingere su heroku. Ho provato a seguire il tuo esempio ma non sono stato in grado di risolvere il problema. –

+0

Grazie, signore! Questa è una risposta sorprendente! –

6

Ho avuto lo stesso problema, Tutto Dovevo fare cd per proiettare dir anziché eseguire comandi dalla cartella del modello nella directory del progetto.

2

Questa cosa folle ha funzionato per me:

Se si dispone di repo git copia dell'app su di voi macchina locale poi cd in quella posizione e il gioco è fatto !!

Sarete in grado di utilizzare l'app. È possibile verificare questo con comandi come: heroku logs -n 1500

Problemi correlati