Copiando completamente o parcialmente una Base de Datos (1)

1 comentario

A veces puedes querer copiar una Base de Datos completa, con todo su contenido, pero a veces puede interesarte copiar solamente una parte de ella. Por lo tanto, tus opciones serían:

  1. Copiarla totalmente. Con todos sus metadatos y todos sus datos
  2. Copiar solamente los metadatos. Es decir, su estructura
  3. Copiar todos los metadatos y el contenido de algunas tablas
  4. Copiar algunos metadatos y el contenido de algunas tablas

Como el tema es largo, será tratado en 2 artículos. En este veremos como realizar esas tareas manualmente, o sea sin usar un programa de administración gráfica y en el siguiente artículo usaremos un programa de administración gráfica.

Opción 1. Copiarla totalmente. Con todos sus metadatos y todos sus datos

Para este caso lo más recomendable es hacer un backup usando el programa GBAK. ¿Por qué es lo más recomendable? porque al hacer un backup con GBAK se elimina la basura que contenía la Base de Datos original y en el backup no hay basura, ni índices (que serán creados cuando se restaure el backup), y el identificador de todas las transacciones del backup es puesto en cero.


GBAK -b MiBaseDatos.FDB MiBackup.FBK -user SYSDBA -password masterkey

Si el Servidor del Firebird no está funcionando también se puede copiar la Base de Datos con el Explorador de Windows o algún programa similar. ¿Por qué el Servidor del Firebird no debe estar funcionando? Porque si lo está y alguien está conectado, la Base de Datos puede corromperse. Y si nadie está conectado existe el riesgo (pequeño, pero existe) de que el Servidor esté realizando alguna tarea en la Base de Datos (por ejemplo, un sweep). Por lo tanto, copiar con el Explorador del Windows solamente es seguro si el Servidor del Firebird está apagado.

Opción 2. Copiar solamente los metadatos. Es decir, su estructura

El programa GBAK tiene la opción -m la cual copia solamente los metadatos. Su sintaxis es:


GBAK -b -m MiBaseDatos.FDB MiBackup.FBK -user SYSDBA -password masterkey

Opción 3. Copiar todos los metadatos y el contenido de algunas tablas

Para este caso lo mejor es crear un archivo de script con el contenido completo de la Base de Datos y luego eliminar lo que no nos interesa, modificar lo que queremos cambiar, y dejar como está a lo demás.

El programa ISQL tiene una opción -extract que sirve para crear un script de toda la Base de Datos.

COPIAR04

Captura 1. Si haces clic en la imagen la verás más grande

En la Captura 1. vemos que todo el contenido de la Base de Datos DEISY.FDB fue copiado al archivo de script llamado DEISY.SQL

COPIAR05

Captura 2. Si haces clic en la imagen la verás más grande

El archivo de script DEISY.SQL por supuesto que es muchísimo más largo, en la Captura 2. se muestran solamente las primeras líneas.

Ahora, tenemos la posibilidad de eliminar lo que ya no nos interesa tener y de modificar cualquier cosa. Podemos cambiar el nombre o el contenido de los dominios, de las tablas, de los stored procedures, etc. Lo que se nos ocurra.

Después de haber eliminado y modificado todo lo que quisimos, para generar una nueva Base de Datos, debemos quitarle el comentario a la línea CREATE DATABASE, poner el nombre que tendrá la nueva Base de Datos, y el usuario y la contraseña que la creará.

COPIAR06

Captura 3. Si haces clic en la imagen la verás más grande

Para crear la Base de Datos llamada DEISY2.FDB, ingresamos a ISQL y con el comando INPUT ejecutamos el script. Todo lo que esté escrito dentro del script será ejecutado.

COPIAR07

Captura 4. Si haces clic en la imagen la verás más grande

Si todo está bien, la nueva Base de Datos será creada. Si hay algún error, habrá que encontrar cual es el error y corregirlo. Luego, se vuelve a intentar crear la Base de Datos.

Copiando solamente el contenido de algunas tablas

Hasta ahora hemos visto como copiar a una Base de Datos completa, con todos sus metadatos y todos sus datos. Pero ¿y si queremos copiar solamente el contenido de algunas tablas?

Para eso entramos a ISQL, nos conectamos a una Base de Datos, y usando el comando OUTPUT enviamos a un archivo de texto todo lo que hacemos, tal y como vemos a continuación:

COPIAR01

Captura 5. Si haces clic en la imagen la verás más grande

La primera línea le indica al ISQL que todo lo que se escriba a continuación se guarde en un archivo de texto. No se verá en la pantalla, sino que se guardará en el archivo cuyo nombre se escriba después de la palabra OUTPUT.

Ese nombre puede ser cualquiera y puede tener cualquier extensión. Para los datos se acostumbra a ponerle la extensión .DAT pero eso no es obligatorio.

El OUTPUT que se encuentra en la tercera línea se usa para que la salida vuelva a verse en la pantalla, o sea que dejará de enviarse al archivo de texto.

Entre el primer OUTPUT y el segundo OUTPUT puede haber muchas líneas, no solamente una como en este ejemplo.

En el contenido del archivo de texto BANCOS.DAT se verá algo como:

COPIAR02

Captura 6. Si haces clic en la imagen la verás más grande

Donde, como puedes ver, se muestra el nombre de cada columna y el contenido de cada fila.

Opción 4. Copiar algunos metadatos y el contenido de algunas tablas

Es igual a la Opción 3.

Conclusión:

Como has podido ver en este artículo, con Firebird tenemos la posibilidad de realizar backups completos o parciales de nuestra Base de Datos.

Enviar el backup a un archivo de script tiene la gran ventaja de que todo es legible y así podríamos revisar ese script y descubrir errores o mejoras que se podrían realizar.

Artículos relacionados:

Entendiendo a los scripts

Usando scripts para documentar la Base de Datos

Ejecutando un script desde Visual FoxPro

El índice del blog Firebird21

El foro del blog Firebird21

Anuncios

Usando Database Comparer en línea de comandos

4 comentarios

En el artículo:

https://firebird21.wordpress.com/2013/06/10/database-comparer-de-clever-components/

ya habíamos hablado sobre un programa muy bueno para comparar bases de datos llamado Database Comparer, de la empresa Clever Components.

Pues bien, ese programa además de permitirnos interactuar con él por medio del GUI (Graphical User Interface) también nos permite ejecutarlo a través de la línea de comandos, como veremos ahora.

¿Y para qué nos serviría ejecutarlo a través de la línea de comandos?

La utilidad más normal de esta característica es que podemos automatizar el proceso en nuestra aplicación (o sea, en el archivo .EXE que nosotros creamos y que los usuarios ejecutan).

En nuestro .EXE podemos hacer que la comparación (y actualización, si es necesaria) se haga en forma automática o cuando el usuario haga clic sobre algún botón.

Veamos la situación:

Estamos desarrollando un sistema de contabilidad que será usado por muchos estudios contables. Un estudio contable normalmente lleva la contabilidad de muchos clientes. Como sabemos que no es bueno tener en una sola Base de Datos a todos los clientes del estudio contable sino que lo recomendable es que cada uno de sus clientes tenga su propia Base de Datos nos encontramos con un problema.

¿Cuál es el problema?

Que la estructura de una Base de Datos (es decir, sus metadatos) no es fija, por mucho que la hayamos analizado siempre cabe la posibilidad de que alguna vez debamos crear una tabla, o modificar una existente, agregarle índices, vistas, stored procedures, triggers, etc.

Si el estudio contable solamente tuviera uno o dos clientes sería muy sencillo. Con la GUI de Database Comparer en un ratito actualizaríamos las bases de datos y listo, a otra cosa.

Pero lo normal es que los estudios contables tengan decenas o centenas de clientes, y allí la actualización manual ya se vuelve muy impráctica, demora mucho tiempo, y existe la gran posibilidad de no actualizar todas las bases de datos o hacerlo de manera equivocada (actualizando al revés), con la consecuencia de que podrían perderse muchos datos y todos los trastornos que eso ocasionaría.

El comportamiento adecuado

Ante una situación como la antedicha, ¿qué es lo mejor?

  1. Creamos una Base de Datos vacía, modelo, que solamente tiene los metadatos. Por ejemplo la llamamos MASTER.FDB
  2. Por cada cliente del estudio contable tenemos una Base de Datos que cuando se agregó ese cliente simplemente se copió físicamente a MASTER.FDB para tener la Base de Datos del cliente. Así podríamos tener ALICIA.FDBGRACIELA.FDB, SUSANA.FDB, etc., las cuales inicialmente eran una simple copia de MASTER.FDB y después se les fueron agregando los datos que les correspondían.
  3. Cuando debemos cambiar algo en la Base de Datos, la única Base de Datos que tocamos, la única con la cual trabajamos es MASTER.FDB
  4. Cuando el usuario abre una Base de Datos, nuestro programa .EXE compara la versión de MASTER.FDB con la versión de la Base de Datos que él abrió. Por ejemplo, si abrió GRACIELA.FDB se compara a MASTER.FDB con GRACIELA.FDB
  5. Para comparar a ambas bases de datos lo mejor es que tengan una tabla, por ejemplo llamada VERSION con una columna llamada por ejemplo VER_NUMERO. Si el número de versión de MASTER.FDB es más nuevo que el número de versión de GRACIELA.FDB entonces estamos seguros de que GRACIELA.FDB debe ser actualizada
  6. Si descubrimos que GRACIELA.FDB debe ser actualizada, entonces nuestro programa .EXE ejecuta a Database Comparer con sus parámetros de la línea de comandos
  7. De esta manera, no importa si el estudio contable tiene cientos de bases de datos, cada vez que el usuario abra una de esas bases de datos se la comparará con MASTER.FDB y en el caso de que la versión de MASTER.FDB sea más nueva entonces se actualizará la Base de Datos que el usuario abrió.
  8. Y estaremos seguros de que sea cual sea la Base de Datos que el usuario abra, y aunque hayan pasado meses o años desde la última vez que la abrió, siempre estará correctamente actualizada.
  9. Lo único que debemos recordar es que cada vez que cambiamos algo en MASTER.FDB debemos actualizar la columna VER_NUMERO de la tabla VERSION, escribiendo un número que sea mayor que el que existía ahí.

La interfaz de línea de comandos de Database Comparer

Si abrimos una ventanita “Símbolo del sistema”, nos ubicamos en una carpeta donde se encuentre el programa DBCOMPARER.EXE y lo ejecutamos con la opción /? veremos las opciones disponibles.

DBCOMPARER

Captura 1. Si haces clic en la imagen la verás más grande

Ejemplo de uso

Al programa DBCOMPARER.EXE podemos copiarlo en cualquier carpeta, no es necesario ni obligatorio ejecutarlo en la carpeta donde fue instalado. Lo mejor generalmente es copiar a DBCOMPARER.EXE y al archivo IBDB_CMP.CFG (donde se guardan los alias, las ubicaciones de las bases de datos, etc.) a la misma carpeta donde se encuentra nuestro programa .EXE

DBCOMPARER2

Captura 2. Si haces clic en la imagen la verás más grande

Al escribir el comando anterior lo que hacemos es decirle a DBCOMPARER que compare a la Base de Datos cuyo alias en ese programa es MASTER con la Base de Datos cuyo alias en ese programa es PRUEBA1. Si hay diferencias entonces PRUEBA1 cambiará para que sus metadatos sean idénticos a los metadatos de MASTER.

Cuando el programa finalice, estaremos seguros de que ambas bases de datos tienen exactamente la misma estructura.

Conclusión:

Database Comparer es una muy buena aplicación para comparar las estructuras de las bases de datos y para hacer que sean idénticas en caso de que tengan diferencias.

Si las bases de datos a comparar son pocas, el proceso puede ser realizado manualmente, es muy sencillo, nada complicado.

Pero si las bases de datos son muchas, entonces hacerlo manualmente demorará mucho tiempo y además se corre el riesgo de no compararlas a todas o de compararlas en el sentido erróneo. Por lo tanto es mucho mejor automatizar ese proceso.

La interfaz de línea de comandos justamente nos permite automatizar la comparación y actualización. Por eso, es conveniente usarla.

Enlaces:

http://www.clevercomponents.com/products/dbcomparer/index.asp

http://www.clevercomponents.com/products/index.asp

http://www.clevercomponents.com/downloads/index.asp

Artículos relacionados:

Database Comparer de Clever Components

El índice del blog Firebird21

El foro del blog Firebird21

Modificando los metadatos

Deja un comentario

En Firebird toda la estructura de cada Base de Datos se guarda en tablas internas cuyo nombre genérico es “metadatos”.

Los nombres de esas tablas y de todas sus columnas empiezan siempre con las letras MON$ o RDB$

En general no deberías cambiar los metadatos, ya que el menor error que cometas podría dejar a tu Base de Datos corrupta e inservible. Así que el riesgo que corres es muy grande.

Sin embargo, una vez que ya eres un desarrollador experimentado y entiendes bien lo que haces y estás seguro de no equivocarte entonces sí podrías modificar a los metadatos.

El manejo de una tabla MON$ o RDB$ es igual al manejo de cualquier otra tabla de Firebird, no hay diferencias. Puedes insertar, actualizar, borrar, consultar, de la misma manera a como lo harías con una tabla normal.

Aunque claro que los riesgos son muy distintos. Si te equivocas con una tabla normal solamente podrías tener datos erróneos aunque tu Base de Datos continuará funcionando sin problemas. En cambio si te equivocas al modificar los metadatos podrías terminar con una Base de Datos totalmente inservible.

Ejemplo

En nuestra Base de Datos tenemos una tabla llamada CLIENTES a la cual le queremos agregar comentarios en la descripción de las columnas.

METADATOS1

Captura 1. Si haces clic en la imagen la verás más grande

Como puedes ver, en la columna “Description” solamente algunas columnas de la tabla CLIENTES tienen su correspondiente descripción, la mayoría de las columnas no tienen descripción. ¿Y cómo haríamos para agregarles descripciones a las columnas que no tienen? Lo mejor y más correcto es hacerlo con un programa tal como el EMS SQL Manager, pero cuando eso no es posible también puedes hacerlo modificando los “metadatos” manualmente aunque por supuesto eso no es lo recomendable, por los motivos que ya hemos visto en los párrafos anteriores.

Si queremos hacerlo de la forma no recomendable a continuación veremos como. Las estructuras de todas las tablas de la Base de Datos se guardan en una tabla interna (o sea: un metadato) llamada RDB$RELATION_FIELDS. Entonces, lo que hacemos es actualizar la tabla y la columna que nos interesan.

UPDATE
   RDB$RELATION_FIELDS
SET
   RDB$DESCRIPTION = 'Aquí va la descripción de la columna de sucursales'
WHERE
   RDB$RELATION_NAME = 'CLIENTES' AND
   RDB$FIELD_NAME = 'CLI_CODSUC'

Lo que hicimos fue cambiar el contenido de la columna RDB$DESCRIPTION de la tabla RDB$RELATION_FIELDS. La tabla que cambiamos fue CLIENTES y la columna que cambiamos fue CLI_CODSUC.

METADATOS2

Captura 2. Si haces clic en la imagen la verás más grande

Como puedes ver en la Captura 2 se ha cambiado la descripción de la columna CLI_CODSUC tal y como lo habíamos querido.

Conclusión

Hacer un SELECT a los metadatos no te causara problemas, puedes escribir todos los SELECTs que quieras. Pero hacer un INSERT, un UPDATE o un DELETE ya es otra historia, allí sí podrías “meter la pata” y meterla muy grande, dejando a tu Base de Datos inservible. Por lo tanto, el sentido común te dice que no toques los metadatos salvo en el caso de que sepas muy bien lo que estás haciendo.

Este ejemplo mostró como cambiar un metadato. Como ves, es muy simple, muy sencillo, es lo mismo que harías con una tabla normal, no hay diferencias en eso. La diferencia sería en las consecuencias si haces algo mal.

Artículo relacionado:

El índice del blog Firebird21

Usando ISQL.EXE para extraer los metadatos

1 comentario

Como seguramente sabes, en cada instalación de Firebird viene incluido un programa llamado ISQL.EXE (Interactive SQL) con el cual puedes realizar todas las operaciones posibles en una Base de Datos (crearla, conectarte a ella, agregarle dominios, tablas, índices triggers, stored procedures, insertar filas, modificar filas, borrar filas, etc., etc. etc.)

También podemos usar ese programa para extraer los metadatos y guardarlos en un archivo de texto plano ¿para qué necesitaríamos hacer algo así? por muchas razones, por ejemplo:

  • Verificar que todos los metadatos son los correctos
  • Verificar que no esté sobrando algún dominio
  • Cambiarle el nombre a una tabla

No es necesario usar ISQL.EXE para estas tareas, las mismas puedes también realizarlas con cualquier administrador gráfico como el EMS SQL Manager, el IBExpert, el Flame Robin, etc., pero la ventaja de hacerlas con ISQL.EXE es que este programa está siempre disponible, siempre lo tenemos a nuestra disposición, en cambio podría darse el caso que no contemos con los otros programas.

Enviar los metadatos a un archivo de texto plano tiene la gran ventaja de que muy rápidamente podemos encontrar la información que necesitamos, por ejemplo:

  • ¿Hay algún índice descendente?
  • ¿Hay alguna tabla sin Primary Key?
  • ¿Los nombres de todas las tablas son los correctos?
  • ¿Todas las tablas hijas tienen Foreign Keys a sus tablas padres?
  • ¿Hay algún dominio que no se esté usando?
  • ¿Todas las tablas que deberían tener columnas calculadas, tienen columnas calculadas?
  • Y un largo etcétera

¿Cómo enviamos los metadatos a un archivo de texto usando ISQL.EXE?

  1. Abriendo la ventanita “Símbolo del sistema” del Windows
  2. Ubicándonos en la carpeta donde se encuentra el programa ISQL.EXE
  3. Escribiendo: ISQL -extract MiBaseDatos > MiArchivoTexto

Donde “MiBaseDatos” puede ser la ruta y el nombre completos de la Base de Datos o simplemente un alias que hayamos especificado en el archivo ALIASES.CONF

ISQL1

Captura 1. Si haces clic en la imagen la verás más grande

En este ejemplo, el alias de la Base de Datos es ERP2000 (se lo definió en el archivo ALIASES.CONF) y el nombre del archivo de texto es ERP2000.SQL (el nombre y la extensión pueden ser cualesquiera, en el caso de la extensión la que más se usa es .SQL) y el símbolo “mayor que” es el utilizado por el DOS para redirigir la salida a un archivo.

Luego de unos segundos, cuando el programa ISQL.EXE finalice su tarea tendremos un archivo de texto llamado ERP2000.SQL conteniendo los metadatos de ERP2000.FDB

Podemos ver el contenido de ese archivo de texto con cualquier programa que permita leer archivos de texto, por ejemplo con el Bloc de Notas del Windows.

ISQL2

Captura 2. Si haces clic en la imagen la verás más grande

En la Captura 2 puedes ver los primeros metadatos.

Ahora, ya es muy fácil revisar el archivo de texto y encontrar cualquier inconsistencia que tenga la Base de Datos.

Artículo relacionado:

El índice del blog Firebird21

 

Entendiendo a los scripts

5 comentarios

En SQL en general y en Firebird en particular podemos usar scripts.

¿Qué es un script?

Es un programa, o sea un conjunto de comandos, que se le da a un motor SQL para decirle lo que debe hacer y en que orden debe hacerlo.

¿Cómo se escribe un script?

Como un archivo de texto plano, o sea sin negritas, ni subrayados, nada de eso. Por ejemplo, puedes usar el Bloc de Notas para escribirlo. Por convención, la extensión de los archivos de script es .SQL pero puedes usar cualquier extensión que quieras o inclusive no usar extensión, es lo mismo. Sin embargo, para que te sea fácil entenderte con las demás personas es recomendable que uses la extensión .SQL

¿Qué se puede escribir en un archivo de script?

Cualquier comando que puedes escribir en tu motor SQL, por ejemplo puedes crear bases de datos, crear dominios, crear tablas, crear Primary Keys, crear índices, crear stored procedures, crear triggers, insertar filas, borrar filas, actualizar filas, etc.

También puedes escribir el comando COMMIT.

Aunque puedes tenerlos en un solo script, para evitarte problemas de integridad de los datos lo aconsejable es que escribas scripts separados para los comandos DDL (los que crean y modifican los objetos de la Base de Datos: CREATE, ALTER, DROP) y los comandos DML (los que manipulan a esos objetos: INSERT, UPDATE, DELETE, EXECUTE PROCEDURE, etc.)

Lo recomendable es que uses varios scripts, cada uno de ellos especializado en una tarea.

¿Para qué sirven los scripts?

  1. Para tener documentados los cambios que se realizaron a la Base de Datos. Cada vez que se realiza un cambio se puede escribir un comentario que nos indique la fecha, el autor y el motivo del cambio
  2. Para copiar bases de datos (en forma total o parcial) de una computadora a otra computadora
  3. Para poder mirar como está compuesta una Base de Datos y si está todo bien o si hay algún error
  4. Para tener un backup de la Base de Datos (puede ser total, aunque generalmente sólo de los metadatos). Esto nos permitirá recuperarla si hay algún problema.

Si documentamos los cambios a la Base de Datos, especificando claramente la fecha, el autor, y el motivo del cambio más adelante nos será muy fácil entender qué se hizo y por qué se hizo.

Si la creación de los metadatos sigue un orden específico, encontrar los errores será muy fácil y además nos aseguraremos que los objetos existirán más adelante, cuando objetos dependientes se refieran a ellos.

¿Cómo se escriben los comentarios en un script?

Con la pareja /*    (mi comentario)    */

Por ejemplo: /* esto es un comentario en el script */

O con dos guiones seguidos: — (mi comentario)

Por ejemplo: — este es otro comentario en el script

¿Cuál es el orden que se debe seguir para crear scripts?

Como vimos anteriormente, lo mejor es que tengas varios scripts, no uno solo para realizar todas las tareas sino que cada tarea debería tener su propio script. Por ejemplo:

  • MiBase01.SQL para CREATE DATABASE
  • MiBase02.SQL para CREATE DOMAIN
  • MiBase03.SQL para CREATE GENERATOR
  • MiBase04.SQL para CREATE EXCEPTION
  • MiBase05.SQL para CREATE TABLE, para agregar PRIMARY KEY y para agregar UNIQUE
  • MiBase06.SQL para FOREIGN KEY
  • MiBase07.SQL para CREATE INDEX
  • MiBase08.SQL para CREATE TRIGGER
  • MiBase09.SQL para CREATE PROCEDURE
  • MiBase10.SQL para INSERT en las tablas que tienen datos estáticos, como los nombres de los estados o de las provincias
  • MiBase11.SQL para GRANT derechos a los usuarios
  • MiBase12.SQL para los cambios realizados con posterioridad, todos documentados con la fecha, el autor, y el motivo del cambio
  • MiBase13.SQL para datos de prueba, con los cuales verificamos que la Base de Datos esté funcionando como se espera

En tu caso, en lugar de escribir “MiBase” escribirías el nombre de tu Base de Datos, por ejemplo: Conta01.SQL, Conta02.SQL o Sueldos01.SQL, Sueldos02.SQL, etc.

Listado 1. MiBase01.SQL

SET SQL DIALECT 3;

CREATE DATABASE 'E:\DATABASES\MiBase.fdb'
   PAGE_SIZE 4096
   DEFAULT CHARACTER SET ISO8859_1
   USER 'SYSDBA'
   PASSWORD 'masterkey' ;

COMMIT ;

Listado 2. MiBase02.SQL

CREATE DOMAIN D_BOOLEAN AS      -- T = verdadero, F = falso
   CHAR(1) CHARACTER SET NONE
   CHECK (VALUE = 'F' OR VALUE = 'T');

CREATE DOMAIN D_CANTIDAD1 AS
   SMALLINT;

CREATE DOMAIN D_CANTIDAD2 AS  -- El formato es: pppppppp.ssss
   NUMERIC(12, 4);            -- o sea 8 números en la parte entera y 4 decimales

COMMIT;

Listado 3. MiBase03.SQL

Aquí podemos verlo como fue creado con el Bloc de Notas.

SCRIPT2

Captura 1. Si haces clic en la imagen la verás más grande

Listado 4. Ejecutando un script desde ISQL

Para ejecutar un script desde el programa ISQL.EXE usamos el comando INPUT.

SCRIPT1

Captura 2. Si haces clic en la imagen la verás más grande

Ejemplo 5. Ejecutando un script desde EMS SQL Manager

SCRIPT3

Captura 3. Si haces clic en la imagen la verás más grande

Después de hacer click en la opción “SQL Script” se te mostrarán varias opciones relacionadas con los scripts.

SCRIPT4

Captura 4. Si haces clic en la imagen la verás más grande

Puedes usarlas para crear nuevos scripts, abrir un script que está grabado en el disco duro, grabar el script que estás escribiendo, ejecutar un script, etc. También tienes la posibilidad de crear un script a partir de cualquiera de los metadatos, por ejemplo para crear un script de la tabla BANCOS, buscas esa tabla, haces click sobre su nombre con el botón derecho, eliges la opción “Script to New SQL Editor” y luego la opción “Create” y verás el script correspondiente a crear esa tabla.

SCRIPT5

Captura 5. Si haces clic en la imagen la verás más grande

Lo que verás después de hacer click sobre la opción “Create” será algo similar a lo siguiente:

SCRIPT6

Captura 6. Si haces clic en la imagen la verás más grande

O sea que puedes ver la estructura de la tabla BANCOS, su Primary Key (si la tiene, claro), sus restricciones FOREIGN KEY (si las tiene, claro), sus restricciones UNIQUE (si las tiene, claro), sus índices, sus triggers.

De esta manera podrás saber como es la estructura de cada una de tus tablas. Como un archivo de script es un archivo de texto, lo recomendable es que escribas muchos comentarios en él, para que te ayude más adelante si necesitas reconstruir su contenido.

Conclusión:

Usar archivos de script es muy útil, es una facilidad que el Firebird nos otorga y que deberíamos usar para tener bien documentados los cambios a nuestra Base de Datos y poder reconstruirla eficientemente cuando sea necesario.

Artículos relacionados:

Usando un scrip para insertar datos fijos

Usando scripts para documentar la Base de Datos

El índice del blog Firebird21

El foro del blog Firebird21