¿La mejor manera de actualizar la estructura de la database en el server de producción?

Im build una aplicación y me gustaría saber cuál es la mejor manera de actualizar la database de producción.

En este momento despliego mi código (Aplicación CakePHP a través de un repository GIT)

al igual que este tutorial https://www.digitalocean.com/community/tutorials/how-to-set-up-automatic-deployment-with-git-with-a-vps

Pero, ¿cuál es la forma adecuada de actualizar la estructura de la database? no datos

Digamos que creo una nueva tabla o modifico algunos campos en otra tabla en debugging, ahora exporto la consulta y luego ssh al server y me conecto a MySql e inserto la consulta en la database.

pero estoy seguro de que debe haber otra manera no tan complicada.

Lo que me gusta hacer es escribir un set de funciones para convertir mis datos en los nuevos campos / tablas, y así sucesivamente.

Por ejemplo, recientemente tuve que hacer un cambio en mi database donde almaceno las dates de transacción porque el formatting en el que almacené las dates no se evalúa correctamente durante una consulta.

  1. Escribí una function PHP que hace la conversión para cada campo en la database.
  2. Agarré una copy de security de la database de producción en vivo.
  3. Probé mi function usando una ejecución en seco en la copy de security de la database en vivo.
  4. Una vez que todo salió bien, puse mi aplicación / sitio en un modo de mantenimiento temporal y agarré otra copy de la database en vivo. Para estar seguro de que cualquier interacción entre mis clientes y la database estaban en contacto y no habría ninguna brecha.
  5. Ejecuté las funciones en esa copy de la database y las recargué en el server de mi database.
  6. Saqué mi sitio / aplicación del modo de mantenimiento.

El resultado de tener todo preparado de antemano y las testings garantizaron solo 3-5 minutos de time de inactividad para la implementación.

Las migraciones de la database es eso lo que necesitas. Si está usando CakePHP v2.x, lea esto:
http://book.cakephp.org/2.0/en/console-and-shells/schema-management-and-migrations.html
Si CakePHP 3.x esto:
http://book.cakephp.org/3.0/en/migrations.html

En su gancho post-receive , debe configurar un disparador para ejecutar migraciones en su server de producción

¿Por qué no usarías migraciones ya que está integrado en Cake? Eso le permitiría crearlos localmente y luego, cuando el código se envíe a través de git, ejecute la migration en producción.