2009-10-20 17 views
11

He logrado implementar mi aplicación en producción usando Capistrano, pero no entiendo cómo tratar mi base de datos. Estoy usando subversion y pasajero.Capistrano Deploy Wipes Database?

Cuando ejecuto la implementación del límite, la nueva implementación comienza todo de manera reciente. Borra los datos que se agregaron a la base de datos. Obviamente, debe haber una solución, pero estoy muy sorprendido de no encontrar nada en línea sobre cómo lidiar con esto. He leído la documentación de Capistrano y muchos tutoriales.

Lo mejor que puedo encontrar son los libros de recetas de Advanced Rails, que se refieren a poner contenido generado por los usuarios en el directorio compartido, pero no es exactamente correcto.

¿Cómo maneja su base de datos cuando se implementa con Capistrano?

+0

¿Cómo está tu base de datos? SQLite? –

Respuesta

24

Lo más probable es que esté utilizando SQLite y mantenga la base de datos en la ubicación predeterminada. Su base de datos no se elimina, simplemente se deja atrás.

Necesita editar su database.yml y decirle que mantenga su base de datos de producción en una ubicación compartida "../../shared/database.yml" o similar (puede que le convenga usar una ruta absoluta, o para puntos de bonificación MySQL).

Al implementar a través de capistrano, crea una nueva copia de su aplicación en un directorio con marcas de tiempo. Su base de datos se está quedando atrás en el viejo directorio con marca de tiempo.

+0

¡Ah! Ok, sí, estaba a punto de cambiar a mysql, pero he estado usando sqlite para el desarrollo y lo implementé por primera vez con sqlite. Parece que es hora de cambiar a mysql. Gracias. – MikeH

+0

Cambiado a mysql, y todo funciona bien. Este fue el problema. – MikeH

+0

¡Buenas cosas! ¡Gracias por aceptar! – cwninja

Cuestiones relacionadas