2012-09-18 38 views
50

que acaba de crear una sencilla aplicación Rails usandoheroku abierta - sin aplicación especifica

rails new myapp 

creó entonces la pila heroku usando:

heroku create --stack cedar 

pero cuando intento abrir la aplicación en Heroku usando :

heroku open 

me sale:

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

Y esto:

$ heroku open --app myapp 

me da esto:

! App not found 

Me estoy perdiendo algo obvio?

+0

Ya no tiene que especificar la pila de cedro, es la predeterminada ahora –

+0

Asegúrese de desplazarse hacia abajo más allá de las primeras dos respuestas. [Este] (http://stackoverflow.com/a/24816347/199712) es el mejor. –

Respuesta

118

Si usted tiene una aplicación existente en Heroku y que está recibiendo este mensaje sin aplicación especifica, se puede corregir mediante la ejecución de esto en su terminal local:

heroku git:remote -a MyHerokuAppName

+5

Esto me salvó el día. Acaba de borrar la referencia inicial y ejecutar esto. ¡Gracias! – streetlight

+2

Esto es exactamente lo que necesitaba. Utilizo despliegues automáticos desde una sucursal git. Por una razón no relacionada, necesitaba formar un nuevo repositorio. Esto era exactamente lo que necesitaba para arreglar eso. Además, cuando quería interactuar con heroku desde una máquina diferente (en realidad, un entorno de desarrollo cloud9), este simple comando me permite conectarme y trabajar con heroku. – Llewey

24

Heroku por defecto no es la creación de aplicaciones con su nombre de directorio, así que cuando lo hace

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

es la creación de aplicaciones denominado 'calma-pantano-3229' y se puede hacer

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

Siempre puede enumerar sus aplicaciones con:

heroku apps 
19

Otro acercamiento a solv El problema es tomar una amplia comprensión de lo que está haciendo el archivo .git/config asociado con la aplicación heroku y realizar los ajustes necesarios.

1.Abra .git/config desde la raíz de su proyecto heroku.

Su archivo de configuración de git puede parecerse a esto, especialmente si está haciendo malabares con un par de cuentas heroku en su máquina.

[email protected]{heroku.account} aparece en lugar de [email protected] debido a la configuración en su archivo ~/.ssh/config. La referencia a heroku-app-8396.git se debe actualizar para que coincida con su nombre de proyecto heroku. Cada cuenta heroku que tenga debe tener una entrada en el archivo ~/.ssh/config. Obviamente, la cuenta heroku con la que está asociado este proyecto heroku debe aparecer en su archivo .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. Cuando ejecuto git pull heroku master, todo parece funcionar bien.

3. Cuando corro heroku logs, me sale un mensaje de error:

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

¿Por qué?

Por lo que puedo decir, el comando heroku no parece saber qué hacer con las referencias {heroku.account}.Si cambiamos esas referencias a com (que es el valor por defecto cuando no se está usando el plugin heroku 'cuentas'), los comandos heroku trabajar una vez más, pero ahora nuestros git llamadas está diciendo que hay un problema diferente:

$ 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. 

Una forma de resolver esto es definir un control remoto para git y un control remoto para heroku y luego indicar heroku qué control remoto usar.

[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 

me gusta para especificar explícitamente el mando a distancia cuando estoy empujando el contenido de un mando a distancia, por lo que la distancia es heroku para que, a pesar de que esta configuración también da cabida a empujar/tirar usando el valor por defecto (por ejemplo, git push). Creé una nueva "aplicación heroku" remota y agregué remote = heroku-app para indicar heroku para usar un control remoto que no incluye la cuenta heroku en el URI.

Ahora puedo ejecutar mis comandos git y heroku como quiera.

+0

Funcionó como un encanto :) muchas gracias. – fsschmitt

+0

¿Podría darnos un ejemplo de su ~/.ssh/config? También sería útil un ejemplo de cómo presionas para heroku. Intenté seguir tu ejemplo pero no pude resolver el problema. –

+0

¡Gracias, señor! ¡Esta es una respuesta increíble! –

6

que tenían el mismo problema, Todos Tuve que hacer era cd para proyecto dir en lugar de ejecutar comandos desde la carpeta del modelo en el directorio del proyecto.

2

Esta cosa loca que funcionó para mí:

Si tiene copia repositorio git de la aplicación en su máquina local, entonces cd a esa ubicación y eso es todo !!

Podrá usar la aplicación. Puede verificar esto mediante comandos como: heroku logs -n 1500

Cuestiones relacionadas