Duda: Aplicación en desarrollo y prod ucción

Buenas, tengo una duda a la hora de crear mi próxima aplicación, cómo
hacerlo en desarrollo y en
producción.De momento he creado ya un proyecto, el desarrollo lo tengo en un
subdominio a parte donde hago pruebas de nuevas secciones y tal… y
producción lo tengo en otro dominio, cada cual tiene todo el esqueleto
apuntando a su base de datos correspondiente, me pregunto entonces el
por qué del fichero database.yml, donde le dices la base de datos que
has de usar en un caso o en otro. Da la impresión de que en realidad
sólo se debería tener una sóla aplicación para desarrollo y
producción.Por ejemplo, si mi aplicación está en producción usa su base de datos,
pero si quiero hacer pruebas en desarrollo qué? A no ser que me cree la
misma aplicación en otro subdominio en fase desarrollo no puedo tocar el
código ni ver los cambios efectuados, puesto que si lo toco afectará al
código de producción porque es el mismo y la aplicación que se ejecuta
siempre es la de producción. No se si me he explicado bien … qué lio,
yo diría que se tiene que tener la aplicación en desarrollo en una parte
y la de producción en otra, pero ahí tengo la duda si es así o no,
porque entonces no entiendo el fichero database.yml.
Alguien me puede iluminar? muchas gracias

On Apr 24, 2007, at 2:14 PM, Miguel Angel Calleja Lázaro wrote:

misma aplicación en otro subdominio en fase desarrollo no puedo
Alguien me puede iluminar? muchas gracias
Creo que el punto que te falta por tener claro es que uno NO edita el
codigo fuente sobre el que corre produccion. Aunque trabajes con una
sola maquina produccion y desarrollo tienen siempre arboles
distintos. Y si quieres desarrollo accesible desde internet puedes
ponerlo bajo otro dominio, bajo el mismo pero en su propio
puerto, …, ves como va.

Esto normalmente se gestiona usando un sistema de control de
versiones, por ejemplo Subversion. Desarrollo y produccion son
checkouts diferentes del repositorio, dicho en ese argot.

La version mas simple de esto es que que ambos lo son de trunk, tu
trabajas en desarrollo y vas haciendo commits. Cuando decides que
esta todo OK para migrar produccion haces update, corres migrations,
etc. Eso se puede volver mas sofisticado trabajando con ramas, usando
Capistrano, etc. Ya depende del grado de separacion y control que
necesites.

– fxn

On Apr 24, 2007, at 2:27 PM, Xavier N. wrote:

La version mas simple de esto es que que ambos lo son de trunk, tu
trabajas en desarrollo y vas haciendo commits. Cuando decides que
esta todo OK para migrar produccion haces update, corres migrations,
etc. Eso se puede volver mas sofisticado trabajando con ramas, usando
Capistrano, etc. Ya depende del grado de separacion y control que
necesites.

Dejame añadir una cosa mas sobre database.yml que creo que contribuia
al lio :-).

Aunque database.yml se genera con las llaves de los tres entornos, no
quiere decir que deban estar las tres en cada instalacion de la
aplicacion. Quiza te preguntes: y en produccion que sentido tiene que
tenga configurada development? Bien, por lo general ninguno, y en tal
caso puedes simplemente borrar esa parte de la configuracion (yo
suelo hacerlo para que database.yml este lo mas ajustado posible). Si
arrancas en modo production y la llave development no esta Rails no
se queja, solo usa lo que necesita.

Por otro lado esa limpieza no es mala idea porque si accidentalmente
corrieras las migrations, lanzaras la consola, etc. en modo
desarrollo estando en produccion verias un error que te advertiria
del desliz (dice que no puede conectarse a la base de datos),
mientras que si desarrollo esta configurada trabajarias ahi sin quiza
darte cuenta, y eso va camino de un gelocatil :-).

– fxn