- Mantenga su código en una ubicación separada de la configuración y otros archivos variables (imágenes cargadas, archivos de caché, etc.)
- Mantenga los módulos separados del código principal también.
- Asegúrese de que su código tenga permisos de sistema de archivos para cambiarse a sí mismo (utilice SuPHP, por ejemplo).
Si hace esto, lo más simple sería descargar completamente la nueva versión (sin parches incrementales) y descomprimirla en un directorio adyacente al que contiene la versión actual. Debido a que no habrá archivos variables dentro del directorio de código, simplemente puede eliminar o cambiar el nombre del antiguo y cambiar el nombre del nuevo para reemplazarlo.
Puede mantener el número de versión en una constante global en el código.
En cuanto a MySQL, no hay otra forma que hacer un script de actualización para cada versión que cambie el diseño de la base de datos. Incluso las soluciones automáticas para cambiar la definición de la tabla no pueden saber cómo actualizar los datos existentes.