2012-05-06 13 views
6

En una aplicación que apoyo, últimamente he realizado varios cambios en la estructura de la base de datos.¿Existe alguna herramienta o API para actualizar automáticamente una estructura de base de datos?

Envío la actualización a los usuarios, pero es muy difícil mantenerlos todos actualizados.

¿Hay alguna manera simple de hacer esto?

Algo que permite a los usuarios omitir versiones, pero aún hacer la actualización en la siguiente versión que instalan.

Uso la base de datos BlackFish.

Gracias

+3

Asegúrese de que los parches se apliquen en el orden correcto? No deberías tener ningún problema entonces. – Ben

+1

De acuerdo con @Ben, si su usuario omite algunas de las actualizaciones, una vez que lo realice, instale todas las actualizaciones anteriores en una secuencia antes de aplicar la última. En mi humilde opinión es la forma más sencilla de hacerlo. – TLama

+3

No sabía que alguien realmente usara BlackFish SQL. –

Respuesta

5

tienda sólo el número de versión de base de datos en la base de datos y escribir scripts de migración de este tipo:

  • database_10.sql - estructura inicial db
  • database_10_15.sql - script de migración para pasar de 1.0 a 1,5
  • database_10_17.sql - script de migración para pasar de 1.5 a 1.7

Compruebe el número de versión de la base de datos en cada inicio de aplicación y aplique los scripts de migración necesarios.

0

Nota al margen:

Otra alternativa atractiva a él también para proyecto pequeño es el componente ACE Absolute Database.


Ahora dirige al punto:

La edición personnal (gratuito) viene con una utilidad personalizada denominada DBManager (junto con su código fuente).

enter image description here

Puede servir como punto de partida a la forma de gestionar la base de datos mediante programación cambio de estructura (la forma en Delphi!).

¿Por qué no portarlo a BlackFish?

0

Raramente cambio de Bases de datos pero solo agrego una tabla o algunas veces un colunm. Cuando inicio mi programa, comprueba la existencia de dicha columna o tabla y, si no está allí, simplemente intenta hacerlo.

Cuestiones relacionadas