Está en la página 1de 12

IMPORTACIÓN - EXPORTACIÓN

BASE DE DATOS POSTGRESQL


SISTEMA ADMINISTRATIVO CHYSTAL PLUS P á g i n a 1 | 12
MIGRACIÓN EN CHRYSTAL USANDO PLANTILLAS BÁSICAS RECOMENDADAS
Muchos clientes migran de un sistema administrativo a otro y dependiendo del tipo de
empresa la estructura de su inventario varía según el rubro que manejan; esto es muy
importante tenerlo en cuenta al momento de cargar los productos terminados y los
servicios.
Generalmente, para la migración se utiliza las tablas básicas, ya que las operaciones son
muy complejas para su importación.
Estas tablas, hay que importarlas o migrarlas con la secuencia correcta para que admita
los datos al momento de migrar; ¡si hablamos de los productos terminados!, primero se
carga las unidades que representan cada producto, después los departamentos según su
clasificación, los productos y por último la existencia de los productos (sí el cliente lo
desea).
Luego de cargar los productos; podemos seguir con la lista de proveedores y clientes;
además aprovechamos de cargar las cuentas contables en el caso de que el sistema
administrativo no está integrado a módulo de contabilidad (que es lo más frecuente).
Los clientes nuevos con el Sistema Chrystal en su mayoría presentan los datos en un
archivo Excel y nosotros lo ajustamos al requerimiento de la importación.
Ejemplo de secuencia para migrar.
1- Unidades
2- Departamentos
3- Productos
4- Existencia de los productos.
5- Servicios
6- Proveedores
7- Clientes
8- Cuentas contables
Al instalar el Sistema Chrystal, en su carpeta raíz hay un
directorio “DataImportation” donde se encuentran las
plantillas recomendadas por el fabricante (Casa matriz).
En estas plantillas hay que tener ciertas consideraciones
para que el sistema Chrystal pueda leer los datos según
el tipo de formato que contiene las columnas.

P á g i n a 2 | 12
IMPORTACIÓN DESDE LAS PLANTILLAS .XLS (97-2003)

Ejemplo 1: Preparación de la tabla departamentos (department)


Campos utilizados para esta importación:
Columna Nombre Columna Traducción No Null Valor Formato
A CODE Código X Alfanumérico Texto
B DESCRIPTION Descripción X Descripción Texto

Ejemplo 2: Preparación de la tabla productos (Products)


Campos utilizados para esta importación:
No
Columna Nombre Columna Traducción Valor Formato
Null
A CODE Código X Alfanumérico Texto
B DESCRIPTION Descripción X Descripción Texto
C REFERENCE Referencia Referencia Texto
D MARK Marca Marca Texto
E MODEL Modelo Modelo Texto
F DEPARTMENT Departamento X Código dpto. “00” Texto
G BUY_TAX Impuesto compra X 01,02,03, EX Texto
H SALE_TAX Impuesto venta X 01,02,03, EX Texto
I UNIT Unidad X Código Unid. “00” Texto
J UNITARY_COST Costo unitario X 1234.12 Número
K MAXIMUN_PRICE Precio máximo X 1234.12 Número
L OFFER_PRICE Precio oferta X 1234.12 Número
M HIGHER_PRICE Precio mayor X 1234.12 Número
N MINIMUM_PRICE Precio mínimo X 1234.12 Número
O COIN Moneda X Código Moneda “01” Texto
P SERIALIZED Utiliza serial X F,T Texto
Q USE_LOTS Utiliza lotes X F,T Texto

P á g i n a 3 | 12
MIGRAR DATOS DESDE UN ARCHIVO CSV A POSTGRESQL CON EL COMANDO COPY
UTILIZANDO EL PGADMIN

Muchas veces tenemos la necesidad de cargar datos a una tabla de nuestra base de datos
en postrgesql desde un archivo ya sea de texto o un csv y para realizar esta actividad
eficientemente podemos apoyarnos del comando Copy, que es un comando nativo de
PostgreSql que podemos utilizar desde pgAdmin.

Sintaxis Exportar (COPY TO):

copy tabla (column1,column2,column3...)


to 'ruta donde se guardara el archivo.csv’ WITH DELIMITERS as ';' NULL as ‘‘ CSV
header;

Sintaxis Importar (COPY FROM):

copy tabla (column1,column2,column3...)


from 'ruta donde está el archivo.csv’ WITH DELIMITERS as ';' NULL as ‘‘
CSV header;

Opciones comunes:

DELIMITER: separador de columnas


NULL: cadena que representa el valor nulo
HEADER: indica si la primera línea contiene encabezados (formato CSV)

“Se recomienda hacer un directorio (Carpeta con nombre de Importar y


Exportar) en el disco local C:\ o en una partición de dicho disco (D:\).”
Al utilizar este método de importación, hay que tener en cuenta el tipo de formato de la
codificación de caracteres Unicode que tiene el archivo preparado.
Unicode es un set de caracteres universales, es decir, un estándar en el que se definen
todos los caracteres necesarios para la escritura de la mayoría de los idiomas hablados en

P á g i n a 4 | 12
la actualidad que se usan para facilitar el tratamiento informático, transmisión y
visualización de textos de numerosos idiomas y disciplinas técnicas.
Las bases de datos generalmente están codificadas en Unicode = UTF-8 y utilizan símbolos
de longitud variable capaz de representar cualquier carácter Unicode.
Hay que tener precaución con los archivos que preparamos para importar a la base de
datos Postgresql al momento de la utilización, poniendo atención que ellos estén
guardados en Unicode = UTF8; de no ser así, lo más seguro estén guardadas en Unicode =
ANCI la cual tiene limitantes con ciertos caracteres de lengua hispana y símbolos
comunes.
Ejemplo 3:
Acentos Y Tilde Símbolos
á ¿
Á ¡
é º
É »
í «
Í ª
ó
Ó
ú
Ú
ü
Ü
ñ
Ñ

El siguiente método de importación se realizará desde un archivo de Microsoft Excel, que


es la base de todos los datos a migrar; donde posteriormente serán convertidos estos
archivos al formato csv (limitado por comas) que usaremos en PgAdmin.
Siguiendo la recomendación del caso anterior de migración al Sistema Chrystal con los
archivos de “DataImportation”; la diferencia a este método es que tenemos que Exportar
el encabezado completo de cada tabla utilizando los comandos respectivos.
Hay que tener en cuenta la siguiente secuencia donde hay una diferencia, por ejemplo,
cuando se migra los Productos, se utilizan dos tablas que van en conjunto y luego
actualizar la secuencia del correlativo interno para que se pueda trabajar correctamente.
P á g i n a 5 | 12
Ejemplo 4: Secuencia para migras usando sintaxis de comandos en PgAdmin.

Básico a Importar Tabla en PgAdmin


Unidades units
Departamentos department
a- products
Productos y servicios b- products_units
c- Actualizar sequesces: products_inits_correlative_sep
Existencia de los productos. products_stock
Proveedores provider
Clientes clients
Cuentas contables account_accounting

Pasos para obtener el archivo en Excel de la tabla a importar. (Ejemplo con los Productos)

1- Cargar un producto y un servicio, unidades y departamentos con su respectivo sub


departamento si el inventario de productos lo amerita.
2- Desde PgAdmin exportar todas las tablas necesarias para obtener los archivos .csv

Tabla products:

COPY products(code, description, short_name, mark, model, referenc, department,


days_warranty, sale_tax, buy_tax, rounding_type, costing_type,
discount, max_discount, minimal_sale, maximal_sale, status, origin,
take_department_utility, allow_decimal, edit_name, sale_price,
product_type, technician, request_technician, serialized, request_details,
request_amount, coin, allow_negative_stock, use_scale, add_unit_description,
use_lots, lots_order, minimal_stock, notify_minimal_stock)
TO 'C:\Exportar\products.csv' WITH DELIMITER AS ';' NULL AS '' CSV HEADER;

Tabla procucts_units:

COPY products_units(correlative, unit, product_code, main_unit, conversion_factor,


unit_type, show_in_screen, is_for_buy, is_for_sale, unitary_cost, calculated_cost,
average_cost, perc_waste_cost, perc_handling_cost, perc_operating_cost,
perc_additional_cost, maximum_price, offer_price, higher_price, minimum_price,
perc_maximum_price, perc_offer_price, perc_higher_price, perc_minimum_price,
perc_freight_cost, perc_discount_provider, lenght, height, width, weight,
capacitance)
TO 'C:\Exportar\products_units.csv' WITH DELIMITER AS ';' NULL AS '' CSV HEADER;

P á g i n a 6 | 12
Tabla units:

COPY units(code, description)


TO 'C:\Exportar\units.csv' WITH DELIMITER AS ';' NULL AS '' CSV HEADER UNICODE = ;

Tabla department:

COPY department(code, description, perc_maximum_price, perc_minimum_price,


perc_offer_price, perc_higher_price, father_department)
TO 'C:\Exportar\department.csv' WITH DELIMITER AS ';' NULL AS '' CSV HEADER;

Tabla products_stock:

COPY products_stock(product_code, store, locations, stock, ordered_stock,


committed_stock)
TO 'C:\exportar\products_stock.csv' WITH DELIMITER AS ';' NULL AS '' CSV HEADER;

3- Después de obtener los archivos.csv, lo abrimos con Microsoft Excel y enseguida lo


guardamos como libro de excel, y proseguimos a rellenar con los datos.

Ejemplo 5: Preparación del documento unidades (units)


Campos utilizados para esta exportación:
Columna Nombre Columna Traducción No Null Valor Formato
A code Código X Alfanumérico Texto
B description Descripción X Descripción Texto

Ejemplo 6: Preparación del documento Tabla department:


Campos obtenidos de la exportación:
Columna Nombre Columna Traducción No Null Valor Formato
A code Código X Alfanumérico Texto
B description Descripción X Descripción Texto
C perc_maximum_price % precio máximo X 0 Texto
D perc_minimum_price % precio mínimo X 0 Texto
E perc_offer_price % precio oferta X 0 Texto
F perc_higher_price % precio mayor X 0 Texto
G father_department Departamento padre X Código… “00” Texto
P á g i n a 7 | 12
Ejemplo 7: Tabla de products:
Campos obtenidos de la exportación:
Columna Nombre Columna Traducción No Null Valor Formato
A code Código X Alfanumérico Texto
B description Descripción X Descripción Texto
C short_name Descripción corta X Descripción Texto
D mark Marca Marca Texto
E model Modelo Modelo Texto
F reference Referencia Referencia Texto
G department Departamento X Código dpto. “00” Texto
H days_warranty Garantía X 0 Texto
I sale_tax Impuesto venta X 01,02,03, EX Texto
J buy_tax Impuesto compras X 01,02,03, EX Texto
K rounding_type redondeo decimales X 2 Texto
L costing_type Tipo de costeo X 0,1,2,3, Texto
M discount % Descuento X 0 Texto
N max_discount Máx. descuento X 0 Texto
O minimal_sale Mínima venta X 0 Texto
P maximal_sale Máxima venta X 0 Texto
Q status Estatus (Activo-Inactivo) X 01 o 02 Texto
R origin Origen (Nacional-Importado) X 01 o 02 Texto
S take_department_utility Utilidad departamento X TRUE, FALSE Texto
T allow_decimal Decimales en cantidad X TRUE, FALSE Texto
U edit_name Editar nombre X TRUE, FALSE Texto
V sale_price Precio de venta X 0 Texto
W product_type Producto tipo X T, S Texto
X technician Técnico X 00 Texto
Y request_technician Solicitar técnico X TRUE, FALSE Texto
Z serialized Serializado X FALSE, TRUE Texto
AA request_details Solicitar detalle X FALSE, TRUE Texto
AB request_amount Solicitar cantidad X FALSE, TRUE Texto
AC coin Moneda X 01,02 Texto
AD allow_negative_stock Permite Existencia (-) X FALSE, TRUE Texto
AE use_scale Usa balanza X FALSE, TRUE Texto
AF add_unit_description Editar nombre X FALSE, TRUE Texto
AG use_lots Lotes X FALSE, TRUE Texto
AH lots_order Método de salida X 0,1,2 Texto
AI minimal_stock Existencia mínima X 0 Texto
AJ notify_minimal_stock Not. Existencia mínima X FALSE, TRUE Texto
P á g i n a 8 | 12
Ejemplo 8: Tabla products_units:
Campos obtenidos de la exportación:
Columna Nombre Columna Traducción No Null Valor Formato
A correlative Código X autoincrementable Texto
B unit Unidad X 00 Texto
C product_code Código del producto X Alfanumérico Texto
D main_unit Unidad principal X T, F Texto
E conversion_factor Factor X 0 Texto
F unit_type Tipo X 0,1, 2 Texto
G show_in_screen Mostrar en pantalla X T, F Texto
H is_for_buy Para compras X T, F Texto
I is_for_sale Para ventas X T, F Texto
J unitary_cost Costo unitario X 0.00 Número
K calculated_cost Costo calculado X 0.00 Número
L average_cost Costo promedio X 0.00 Número
M perc_waste_cost % Residuos X 0 Texto
N perc_handling_cost % Manejo X 0 Texto
O perc_operating_cost (+) % costo operativo X 0 Texto
P perc_additional_cost (+) % costo adicional X 0 Texto
Q maximum_price Precio máximo X 0.00 Número
R offer_price Precio oferta X 0.00 Número
S higher_price Precio mayor X 0.00 Número
T minimum_price Precio mínimo X 0.00 Número
U perc_maximum_price % utilidad precio máximo X 0 Texto
V perc_offer_price % utilidad precio oferta X 0 Texto
W perc_higher_price % utilidad precio mayor X 0 Texto
X perc_minimum_price % utilidad precio mínimo X 0 Texto
Y perc_freight_cost (+) % costo flete X 0 Texto
Z perc_discount_provider (-) % proveedor X 0 Texto
AA lenght Largo X 0 Texto
AB height Alto X 0 Texto
AC width Ancho X 0 Texto
AD weight Peso X 0 Texto
AE capacitance Capacidad X 0 Texto

P á g i n a 9 | 12
Después de hacer el procedimiento de exportar todas las tablas y haber llenado las mismas con los
datos a migrar y guardado en el directorio importar, se procederá a importar con los comandos
COPY FROM, utilizando las mismas sintaxis que usamos para exportar, pero cambiando el TO por
FROM y el directorio “Importar”.

Ejemplo 8:
Tabla units:

COPY units(code, description)


FROM 'C:\importar\units.csv' WITH DELIMITER AS ';' NULL AS '' CSV HEADER;

P á g i n a 10 | 12
COMO EXPORTAR UNA TABLAS A UN SCRIPT SQL PARA IMPORTAR A UN SUEVO SISTEMA

Esta operación la hacemos desde PgAdmin, a través de la herramienta Backup,

P á g i n a 11 | 12
Con este procedimiento obtenemos un tabla.backup, que después abrimos con la herramienta
Notepad++ y eliminamos lo que no requerimos; finalmente lo guardamos con la extensión .sql
para tenerlo listo y ser usado en un nuevo Sistema Chrystal.

P á g i n a 12 | 12

También podría gustarte