Actualizar ID de tablas en web2py al migrar datos a PostgreSQL desde otras fuentes

31 views
Skip to first unread message

tesi...@gmail.com

unread,
Apr 2, 2019, 7:12:02 PM4/2/19
to web2py-usuarios
Hola, hace poco más de un año que utilizo web2py, y he logrado evacuar todas mis dudas de principiante con ayuda de la documentación y los foros, excepto una. Utilizo Pentaho Data Integration (PDI) para migrar los datos de las tablas del sistema operacional a una base de datos de PostgreSQL. El problema surge al tratar de insertar un nuevo registro en cualquiera de las tablas, porque web2py trata de hacerlo con ID = 1, y las tablas ya tienen muchos registros. Lo que hago para evitar este error es exportar los datos de las tablas a archivos CSV, eliminar las tablas, volver a crear las estructuras, y por último realizar la importación desde los archivos CSV. ¿Hay alguna forma de hacer que web2py actualice el ID del último registro insertado en las tablas de PostgreSQL, para evitar el proceso de exportación e importación?. Saludos.

MGHSM

unread,
Apr 8, 2019, 4:18:13 PM4/8/19
to web2py-usuarios
El martes, 2 de abril de 2019, 20:12:02 (UTC-3), tesi...@gmail.com escribió:
Hola, hace poco más de un año que utilizo web2py, y he logrado evacuar todas mis dudas de principiante con ayuda de la documentación y los foros, excepto una. Utilizo Pentaho Data Integration (PDI) para migrar los datos de las tablas del sistema operacional a una base de datos de PostgreSQL. El problema surge al tratar de insertar un nuevo registro en cualquiera de las tablas, porque web2py trata de hacerlo con ID = 1, y las tablas ya tienen muchos registros. Lo que hago para evitar este error es exportar los datos de las tablas a archivos CSV, eliminar las tablas, volver a crear las estructuras, y por último realizar la importación desde los archivos CSV. ¿Hay alguna forma de hacer que web2py actualice el ID del último registro insertado en las tablas de PostgreSQL, para evitar el proceso de exportación e importación?. Saludos.

No hay nada que pueda hacer web2py directamente, es un tema de la base de datos.

Deberías revisar con un administrador de base de datos PostgreSQL y buscar cuál es la secuencia correspondiente a la tabla en cuestión; seguramente se llamará nombre_de_tabla_seq_id. 

Luego deberías ejecutar

ALTER SEQUENCE  nombre_de_tabla_seq_id RESTART WITH siguiente_valor_deseado;

y con eso deberías resolver el problema.

Tesis Unju

unread,
Apr 10, 2019, 6:45:57 PM4/10/19
to web2py-...@googlegroups.com
Ok Marcelo, muchas gracias por la respuesta. Saludos.

--
Has recibido este mensaje porque estás suscrito al grupo "web2py-usuarios" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a web2py-usuari...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Claudio Florentin

unread,
Apr 12, 2019, 10:30:33 AM4/12/19
to web2py-usuarios
Hola Marcelo. Sabes cuánto registros es lo máximo en web2py? Sí tiene alguna cantidad?

Tesis Unju

unread,
Apr 12, 2019, 9:39:55 PM4/12/19
to web2py-...@googlegroups.com
Hola Marcelo, con respecto a la actualización de los IDs, funciona perfectamente con ALTER SEQUENCE. Para automatizar el proceso utilizo el siguiente comando en un script:

SELECT pg_catalog.setval('nombre_de_tabla_id_seq', (SELECT MAX(id) FROM nombre_de_tabla), true);

Probé otras alternativas, como:

id integer NOT NULL DEFAULT nextval('nombre_de_tabla_id_seq'),
PRIMARY KEY (id)

ó

id SERIAL PRIMARY KEY,

al definir la estructura de la tabla, pero no me funcionaron.

El proceso de migración, que antes tardaba casi 2 hs en realizarlo, ahora lo hago en 3 min. Nuevamente muchas gracias por la ayuda. Saludos.

El vie., 12 abr. 2019 a las 11:30, Claudio Florentin (<clauram...@gmail.com>) escribió:
Hola Marcelo. Sabes cuánto registros es lo máximo en web2py? Sí tiene alguna cantidad?

--
Has recibido este mensaje porque estás suscrito al grupo "web2py-usuarios" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a web2py-usuari...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/d/optout.

MGHSM

unread,
Apr 29, 2019, 1:05:18 PM4/29/19
to web2py-usuarios

El viernes, 12 de abril de 2019, 11:30:33 (UTC-3), Claudio Florentin escribió:
Hola Marcelo. Sabes cuánto registros es lo máximo en web2py? Sí tiene alguna cantidad?

El límite de registros, si existe, está dado por cada backend de base de datos, no por web2py.
Reply all
Reply to author
Forward
0 new messages