Pasos para migrar data de una Base de Datos en Latin8, conectada a Visual basic(Espacios en Blancos)
De CidesaWiki
(Diferencias entre revisiones)
(New page: * Creamos el backup de la base de datos de produccion, y lo colocamos en otro servido en el mismo con otro nombre, para no tocar la base de datos original. * Descargamos y configuramos ...) |
|||
(6 ediciones intermedias no se muestran.) | |||
Línea 1: | Línea 1: | ||
- | |||
- | |||
* Creamos el backup de la base de datos de produccion, y lo colocamos en otro servido en el mismo con otro nombre, para no tocar la base de datos original. | * Creamos el backup de la base de datos de produccion, y lo colocamos en otro servido en el mismo con otro nombre, para no tocar la base de datos original. | ||
+ | |||
+ | * Creamos los campos ids de todas las tablas, así como las secuencias de cada tabla mediante la función crea_id. ver [[Crear_campos_ids_en_tablas_de_la_base_de_datos]] | ||
* Descargamos y configuramos el SIGA-SL en el servidor. | * Descargamos y configuramos el SIGA-SL en el servidor. | ||
Línea 11: | Línea 11: | ||
* Ejecutamos por Pgadmin y por la consola de symfony los scripts generados. | * Ejecutamos por Pgadmin y por la consola de symfony los scripts generados. | ||
- | * | + | * Se debe cambiar la codificación por defecto de la base de datos, se debe configurar en el archivo database.yml la opción de "encoding" para forzar a que las conexiones y comunicación entra propel y wiki se realice en la codificacion identificada por esta opción, por ejemplo: |
+ | |||
+ | <pre> | ||
+ | |||
+ | all: | ||
+ | propel: | ||
+ | class: sfPropelDatabase | ||
+ | param: | ||
+ | phptype: pgsql | ||
+ | hostspec: localhost | ||
+ | database: SIMA | ||
+ | username: wiki | ||
+ | password: wiki | ||
+ | schema: SIMA002 | ||
+ | encoding: UTF8 | ||
+ | sima_user: | ||
+ | class: sfPropelDatabase | ||
+ | param: | ||
+ | phptype: pgsql | ||
+ | hostspec: localhost | ||
+ | database: SIMA | ||
+ | username: cidesa | ||
+ | password: cidesa | ||
+ | schema: SIMA_USER | ||
+ | encoding: UTF8 | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | Este ejemplo le dice a propel que al conectarse configure la conexion para que todo lo enviado y recibido a wiki sea en esa codificación. | ||
+ | |||
+ | * Se deben verificar las tablas del esquema "SIMA_USER", generalmente solo falta el campo "nomyml" en la tabla "aplicacion" de tipo VARCHAR(50). Se debe colocar en este campo los datos de los archivos .yml con el menu de cada uno de los modulos (OJO: solo el nombre, ej: compras.yml). | ||
+ | |||
+ | * Se Cambian las contraseñas de los usuarios en la tabla usuarios del esquema "SIMA_USER", ejecutando el siguiente script. | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | -- Tabla: Empresa | ||
+ | CREATE SEQUENCE "SIMA_USER".empresa_seq | ||
+ | INCREMENT 1 | ||
+ | MINVALUE 1 | ||
+ | MAXVALUE 9223372036854775807 | ||
+ | START 1 | ||
+ | CACHE 1; | ||
+ | |||
+ | ALTER TABLE "SIMA_USER".empresa_seq OWNER TO wiki; | ||
+ | |||
+ | ALTER TABLE "SIMA_USER".empresa ADD COLUMN id int4 NOT NULL DEFAULT nextval('"SIMA_USER".empresa_seq'); | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | -- Tabla: Usuarios | ||
+ | CREATE SEQUENCE "SIMA_USER".usuarios_seq | ||
+ | INCREMENT 1 | ||
+ | MINVALUE 1 | ||
+ | MAXVALUE 9223372036854775807 | ||
+ | START 1 | ||
+ | CACHE 1; | ||
+ | |||
+ | ALTER TABLE "SIMA_USER".usuarios_seq OWNER TO wiki; | ||
+ | |||
+ | ALTER TABLE "SIMA_USER".usuarios ADD COLUMN id int4 NOT NULL DEFAULT nextval('"SIMA_USER".usuarios_seq'); | ||
+ | ALTER TABLE "SIMA_USER".usuarios ADD COLUMN codcat varchar(16); | ||
+ | |||
+ | |||
+ | -- Tabla: Usuarios | ||
+ | CREATE SEQUENCE "SIMA_USER".apli_user_seq | ||
+ | INCREMENT 1 | ||
+ | MINVALUE 1 | ||
+ | MAXVALUE 9223372036854775807 | ||
+ | START 1 | ||
+ | CACHE 1; | ||
+ | |||
+ | ALTER TABLE "SIMA_USER".apli_user_seq OWNER TO wiki; | ||
+ | |||
+ | ALTER TABLE "SIMA_USER".apli_user ADD COLUMN id int4 NOT NULL DEFAULT nextval('"SIMA_USER".apli_user_seq'); | ||
+ | |||
+ | |||
+ | update "SIMA_USER".empresa set passemp=('SIMA' || codemp) | ||
+ | |||
+ | alter table "SIMA_USER".usuarios alter column pasuse type VARCHAR(100); | ||
+ | |||
+ | update "SIMA_USER".usuarios set pasuse='md5' || md5(trim(usuarios.loguse) || trim(usuarios.pasuse) ); | ||
+ | |||
+ | insert into "SIMA_USER".apli_user (select 'AU0' as codapl, a.loguse, b.codemp, 'menu' as nompoc, 15 as priuse from "SIMA_USER".usuarios a, "SIMA_USER".empresa b); | ||
+ | |||
+ | insert into "SIMA_USER".apli_user (select 'AU0' as codapl, a.loguse, b.codemp, 'catalogo' as nompoc, 15 as priuse from "SIMA_USER".usuarios a, "SIMA_USER".empresa b); | ||
+ | |||
+ | |||
+ | </pre> |
Última versión de 20:53 30 sep 2009
- Creamos el backup de la base de datos de produccion, y lo colocamos en otro servido en el mismo con otro nombre, para no tocar la base de datos original.
- Creamos los campos ids de todas las tablas, así como las secuencias de cada tabla mediante la función crea_id. ver Crear_campos_ids_en_tablas_de_la_base_de_datos
- Descargamos y configuramos el SIGA-SL en el servidor.
- Actualizamos la estructura de la base de datos, generando los sqls de diferencias entre la base de datos a migrar y el modelo. Ver Actualizar_Base_de_datos_en_base_al_modelo
- Eliminamos los espacios en blanco mediante la instrucción de consola de symfony propel-trim-database. Ver Eliminar_espacios_en_blanco_en_bases_de_dato
- Ejecutamos por Pgadmin y por la consola de symfony los scripts generados.
- Se debe cambiar la codificación por defecto de la base de datos, se debe configurar en el archivo database.yml la opción de "encoding" para forzar a que las conexiones y comunicación entra propel y wiki se realice en la codificacion identificada por esta opción, por ejemplo:
all: propel: class: sfPropelDatabase param: phptype: pgsql hostspec: localhost database: SIMA username: wiki password: wiki schema: SIMA002 encoding: UTF8 sima_user: class: sfPropelDatabase param: phptype: pgsql hostspec: localhost database: SIMA username: cidesa password: cidesa schema: SIMA_USER encoding: UTF8
Este ejemplo le dice a propel que al conectarse configure la conexion para que todo lo enviado y recibido a wiki sea en esa codificación.
- Se deben verificar las tablas del esquema "SIMA_USER", generalmente solo falta el campo "nomyml" en la tabla "aplicacion" de tipo VARCHAR(50). Se debe colocar en este campo los datos de los archivos .yml con el menu de cada uno de los modulos (OJO: solo el nombre, ej: compras.yml).
- Se Cambian las contraseñas de los usuarios en la tabla usuarios del esquema "SIMA_USER", ejecutando el siguiente script.
-- Tabla: Empresa CREATE SEQUENCE "SIMA_USER".empresa_seq INCREMENT 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1 CACHE 1; ALTER TABLE "SIMA_USER".empresa_seq OWNER TO wiki; ALTER TABLE "SIMA_USER".empresa ADD COLUMN id int4 NOT NULL DEFAULT nextval('"SIMA_USER".empresa_seq'); -- Tabla: Usuarios CREATE SEQUENCE "SIMA_USER".usuarios_seq INCREMENT 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1 CACHE 1; ALTER TABLE "SIMA_USER".usuarios_seq OWNER TO wiki; ALTER TABLE "SIMA_USER".usuarios ADD COLUMN id int4 NOT NULL DEFAULT nextval('"SIMA_USER".usuarios_seq'); ALTER TABLE "SIMA_USER".usuarios ADD COLUMN codcat varchar(16); -- Tabla: Usuarios CREATE SEQUENCE "SIMA_USER".apli_user_seq INCREMENT 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1 CACHE 1; ALTER TABLE "SIMA_USER".apli_user_seq OWNER TO wiki; ALTER TABLE "SIMA_USER".apli_user ADD COLUMN id int4 NOT NULL DEFAULT nextval('"SIMA_USER".apli_user_seq'); update "SIMA_USER".empresa set passemp=('SIMA' || codemp) alter table "SIMA_USER".usuarios alter column pasuse type VARCHAR(100); update "SIMA_USER".usuarios set pasuse='md5' || md5(trim(usuarios.loguse) || trim(usuarios.pasuse) ); insert into "SIMA_USER".apli_user (select 'AU0' as codapl, a.loguse, b.codemp, 'menu' as nompoc, 15 as priuse from "SIMA_USER".usuarios a, "SIMA_USER".empresa b); insert into "SIMA_USER".apli_user (select 'AU0' as codapl, a.loguse, b.codemp, 'catalogo' as nompoc, 15 as priuse from "SIMA_USER".usuarios a, "SIMA_USER".empresa b);