Más o menos como indica Neftalí, tenemos una tabla que cuando se crea la BD almacenamos la versión y subversión de la misma, además de la fecha y otros campos.
Luego, cuando sacamos actualizaciones, éstas llevan también un número de versión y subversión que se compara con el de la BD que se va a actualizar, se ejecutan sólo los que son más nuevas que los de la propia BD y finalmente se actualiza la BD con los datos de la última ejecutada.
La diferencia es que nosotros tenemos un programita que hicimos a propósito para realizar el proceso.
Es de hace muchos años, pero nunca ha fallado porque es algo muy simple.
La tabla es esta:
Código SQL
[-]CREATE TABLE TBSENTENCIAS_SQL_EJECUTADAS(
NUMEROPRINCIPAL Integer NOT NULL,
NUMEROSECUNDARIO Integer DEFAULT 1 NOT NULL,
FECHAEJECUCION Timestamp DEFAULT "Now",
USUARIO DOMCODIGONONULO,
PUESTOTRABAJO DOMCODIGONONULO,
PRIMARY KEY (NUMEROPRINCIPAL,NUMEROSECUNDARIO)
);
Aunque hay muchas formas de hacer todo esto.