https://foro.gambas-es.org/viewtopic.php?f=3&t=4324
-----------------------------------
v3ctor
Jueves, 01 Enero 2015, 21:00

Actualizar Base De Datos Vieja A Una Nueva Como?
-----------------------------------
Buenas me van surgiendo preguntas y planteos, ahora la pregunta que me hago es esta.

supongamos que lanzo el programa con 3 datos

id, fecha, nombre

10 personas bajan el programa y se acostumbran al programa, y pasa un año, con lo cual esas personas tienen mucho trabajo e info en la base de datos,yo mientras tanto le agrego dos campos a la base de datos

id, fecha, nombre, domicilio, costo

mi pregunta es como hago para levantar la vieja base de datos que tiene 3 campos y la adapto a la nueva que tiene 5?? :shock:


-----------------------------------
jsbsan
Viernes, 02 Enero 2015, 21:07

Re: Actualizar Base De Datos Vieja A Una Nueva Como?
-----------------------------------
V3ctor:

[quote]mi pregunta es como hago para levantar la vieja base de datos que tiene 3 campos y la adapto a la nueva que tiene 5??
[/quote]

El termino de "levantar", no se que quiere decir, supongo que lo que quieres es trasbasar los datos de la antigua base de datos (la de los 3 campos) a la nueva base de datos (5 campos).

Se puede actuar de varias maneras:
A) Crear una nueva tabla con el campo id que relacione los nuevos datos:
 [img]http://foro.gambas-es.org/files/images/6/tabla_agregada.png[/img] 


B) Un pequeño programa, que se encargara de esto:
1) leer toda la base de datos (incluida la tabla de 3 registros)
2) Crear una nueva base de datos (que tuviera ya la tabla de 5 registros), y guardar los registros leidos a la base de datos de 5 registros. Poniendo como valor a los nuevos campos (domicilio, costo), Null y Null, que se diese cuenta el usuario que habra la base de datos que estos datos hay que añadirlos.

El usuario tambien tendria que actualizar su programa, a la versión que maneje la nueva base de datos de 5 campos.

Supongo que Shordi, tiene mas experiencia y nos puede contar otras forma de hacerlo.


Nota:
Lo "ideal", seria estudiar, diseñar y planificar lo mejor posible las tablas, vistas, campos, que tendrá la aplicación, y asi evitamos lios.

En mi experiencia con el programa Cortes, ha sido tener que añadir más tablas y vistas en las versiones nueva (teniendo que mantener los datos ya introducidos). La nueva versión del programa , comprobaba si estaban las tablas nuevas y si no, las añadia mediante código sql.


-----------------------------------
shordi
Sabado, 03 Enero 2015, 18:05

Re: Actualizar Base De Datos Vieja A Una Nueva Como?
-----------------------------------
[quote]Supongo que Shordi, tiene mas experiencia y nos puede contar otras forma de hacerlo.


Nota:
Lo "ideal", seria estudiar, diseñar y planificar lo mejor posible las tablas, vistas, campos, que tendrá la aplicación, y asi evitamos lios.[/quote]

Pues no, no conozco otras formas. Es lo que toca. Por eso el diseño de la base de datos es, para mí, el núcleo duro y básico de una aplicación de gestión. Lo demás son colorines y fuegos artificiales...

De todas formas, en materia de actualizaciónes y, por si sirve de algo, lo que yo hago es: 
-Tengo una base de datos en internet que contiene sólo tres tablas:

1ª.- La de usuarios, lo que permite que mis usuarios usen el mismo login y password en las distintas aplicaciones.
2ª.- La de conexiones, que contiene los datos necesarios para que las distintas aplicaciones se conecten a las distintas bases de datos o servidores FTP o Servidores de SMTP con sus usuarios y contraseñas (encriptadas, claro).
3ª.- La de versiones, que tiene cuatro campos a saber:
      1.- El nombre de la aplicación
      2.- El número de versión
      3.- Si la actualización a ésta versión es obligatoria (booleano)
      4.- Si la reconfiguración es obligatoria (para cuando hay que re-crear la carpeta .Aplicación por si alguno de los "por defectos" ha cambiado.

Cada vez que se conecta el usuario, se abre esta base de datos, se verifica si la clave es correcta, se compara el número de versión que tiene instalado con el de la tabla de verisiones y si no coincide:
      a) si la actualización es obligatoria no se le deja continuar hasta que no actualice. y
      b) una vez actualizada, si hay que reconfigurar se lanzan una serie de procesos, distintos en cada versión, para actualizar los datos.

Como siempre trabajo en red, si hay cambios en las tablas, ya me he encargado yo antes de subir la nueva versión. Si los cambios son en alguna de las bases Sqlite que uso de apoyo, se lo actualizo en el paso b).

Si os apetece el código os lo pongo pero, dado que es una forma de trabajar muy "a mi manera", no sé si tiene verdadero interés para nadie.


-----------------------------------
v3ctor
Sabado, 03 Enero 2015, 19:57

Re: Actualizar Base De Datos Vieja A Una Nueva Como?
-----------------------------------
Si os apetece el código os lo pongo pero, dado que es una forma de trabajar muy "a mi manera", no sé si tiene verdadero interés para nadie. (shordi)

seria muy útil que subieras el código seguramente habrá trillones de cosas para mi y los que tengan interés en aprenden en tu código.

se agradecería mucho la posibilidad de poder bajar el código de tu trabajo y poder mirarlo a ver que se puede aprender.

en principio el programa que estoy haciendo Taller 2015 tiene la intención de aprender a programar una base de datos, ser útil en mi taller de informática, y lo ultimo es lograr que otras personas se beneficien del código y bajada del programa.

solucione el temas de las fechas de una forma chancha y fea jajaj, a lo novato, ya tendré tiempo de programar a lo genio jajajajja.


-----------------------------------
viejito
Domingo, 04 Enero 2015, 22:34

Re: Actualizar Base De Datos Vieja A Una Nueva Como?
-----------------------------------
Hola a todos!

Tareas como añadir campos a una tabla, renombrar una tabla, con algo mas de dificultad quitar campos de una tabla, es posible sin escribir mas que un par de lineas de SQL con el comando ALTER TABLE

Es un estándar ANSI SQL así que está presente en todos RDBMS. SQL es un lenguaje poderoso.

Cada objeto de la base de datos incluso ella mismas se puede crear, modificar ( alterar ) o eliminar.
Las posibilidades son casi infinitas. El resto puede ser código de gambas, bash, si es que el RDBMS dispone de un SQL interpretado, algo como ISQL de Informix, PostgreSQL y MySQL lo tienen.

Una cosa curiosa es que hasta hace poco vi la utilidad de usar vistas, pero en general no las había usado, por resultar algo extrañas para mi, ya que con un "SELECT - FROM - JOIN", puedes hacer lo mismo y no usar espacio de la base de datos. Puede que sea algo mas lento, pero nunca lo fue en INFORMIX-SQL en un intel 386 con unix. No veo porque habría de serlo ahora.

Pienso que es cierto el corazón de un sistema de gestión es la base de datos, el resto es solo fuegos artificiales.

Saludos


