2011-01-16 51 views

Respuesta

10

De acuerdo con Heroku documentation, cambiar DATABASE_URL es la forma correcta de hacerlo.

Si desea que su aplicación de rieles se conecte a una base de datos no proporcionada por Heroku, puede aprovechar este mismo mecanismo. Simplemente configure su configuración de DATABASE_URL para que apunte a cualquier base de datos accesible en la nube, y Heroku creará automáticamente su archivo database.yml para que apunte al servidor elegido. El complemento de Amazon RDS hace esto automáticamente, aunque también puede usar este mismo método para conectarse a bases de datos que no sean de RDS.

He aquí un ejemplo que debería funcionar:

heroku config:add DATABASE_URL=mysql://user:[email protected]/db

Es posible que necesite volver a implementar al hacer un cambio y funcionando git push heroku master

+0

Lo hizo, pero no ayudó. Dice en los registros que Mysql :: Error (Acceso denegado para el usuario 'mydbname'@'ec2-184-72-153-138.compute-1.amazonaws.com' (usando la contraseña: YES)): – Arty

+0

por lo que usa db_name que especifiqué en DATABASE_URL, pero todavía trato de conectarme al servidor de amazonaws – Arty

+0

Interesante. Actualicé mi respuesta para incluir un campo de contraseña. ¿Lo estás especificando también? Continuaré cavando un poco si es así. –

0

tuve este mismo problema con mi base de datos Dreamhost MySQL. Resulta que la solución fue decirle a Dreamhost que estaba bien aceptar conexiones de este host extranjero. De lo contrario, Dreamhost bloquea todas las solicitudes a MySQL que no se originan en sus sistemas.

Parece que si Heroku regresa a Amazon AWS a pesar de su DATABASE_URL, es porque se le niega el acceso a su base de datos MySQL.

3

Por cierto, el host es XXXX.amazonaws.com, donde XXX es un host largo que probablemente cambie. Si puede agregar un comodín, es el más fácil %.amazonaws.com

Cuestiones relacionadas