Estoy pensando en un buen flujo de trabajo para el desarrollo web de php/mysql.¿Alguien tiene un flujo de trabajo de desarrollo/estadificación/implementación con php/mysql?
¿Alguien tiene algunos consejos?
Estoy pensando en un buen flujo de trabajo para el desarrollo web de php/mysql.¿Alguien tiene un flujo de trabajo de desarrollo/estadificación/implementación con php/mysql?
¿Alguien tiene algunos consejos?
Esto es lo que hacemos:
Tenemos algunos scripts personalizados que se ocupan de nuestras actualizaciones de bases de datos y nuestro empuje a la producción. Para nuestra base de datos, mantenemos todos los deltas en una única carpeta y el script comprueba el nivel actual de la BD con los deltas disponibles y, si es necesario, los aplica.
Para la promoción de producción, tenemos otra secuencia de comandos que extrae todos los datos de producción y luego ejecuta rsync para impulsar los cambios.
No menciona qué nivel de control tiene sobre los servidores, pero el proceso general sería el mismo para el desarrollo general.
Creo que todo el mundo hace estas cosas ligeramente diferente, dependiendo de la aplicación exacta. Aquí está nuestra configuración:
Antes de un comunicado:
/trunk
./tags/yymmddhhiiss
.Una vez que se estabilizó, se corre el script deploy:
/current
para que apunte a la etiqueta recién desprotegida.Si tenemos que empujar un pequeño cambio rápidamente, nos acoplamos a la etiqueta actual, y que a continuación, puede ejecutar un proceso de revisión mucho más simple en el servidor:
svn update
Tenga en cuenta que hay ciertas herramientas que están destinadas a la estructuración/automatización de estos procesos. Phing es uno, y Symfony tiene su propio batch system, que solía ser un proyecto independiente llamado pake. Y como si eso no fuera suficiente, Zend Framework está a punto de crear their own variant. Todo es realmente un desastre, pero Phing es probablemente el más utilizado. También puede usar algo que no sea específico de php, como Ant o Capistrano. Solo usamos scripts de shell, que básicamente satisfacen la misma necesidad.
También tenemos un desarrollo de compilación continuo, que se ejecuta desde el tronco y ejecuta todas las pruebas. Actualmente solo tenemos una colección básica de scripts de shell que lo hacen, pero estamos considerando cambiar a PhpUnderControl o xinc.
El migraciones paso tal vez merece una explicación. Estos contienen cambios en la base de datos, así como otras tareas que deben ejecutarse para la nueva versión. Nuestras migraciones son un poco simples en este momento; Simplemente tenemos una carpeta con un conjunto de scripts .php
y .sql
y durante la migración, estos se ejecutan en secuencia. La forma en que hacemos un seguimiento de los cambios que se han ejecutado es vaciando la carpeta migrations
justo después de que se haya hecho una nueva etiqueta. Probablemente sería más inteligente usar la base de datos para registrar qué cambios se han realizado. Se considera adoptar algo como ruckusing para este propósito.
muchas gracias, supongo que probaré esto. phpUnderControl parece muy prometedor –