Re: ALTER COLUMN en Logical Replication

From: Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec>
To: Ruben Fitó <r(dot)fito(at)ubiquat(dot)com>
Cc: Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: ALTER COLUMN en Logical Replication
Date: 2021-04-07 15:36:33
Message-ID: 20210407153633.GA2857@ahch-to
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Wed, 7 Apr 2021 at 07:48, Ruben Fitó <r(dot)fito(at)ubiquat(dot)com> wrote:
> On Wed, Apr 07, 2021 at 08:50:00AM +0200, Ruben Fitó wrote:
> > Tenemos una infraestructura de bases de datos donde disponemos de una
> > replicación lógica en cascada:
> >
> > [master] -> LR -> [esclavo 1] -> LR -> [esclavo 2]
> >
> > Ahora nos vemos en la necesidad de hacer un ALTER COLUMN en una de las
> > tablas.
> >
> > Cómo deberíamos proceder para que no se pierdan datos y no se pare la
> > sincronización?

Detener los DML (INSERT/UPDATE/DELETE)? si, por favor.

estás usando pglogical o replicación lógica nativa? si es pglogical
podrías usar pglogical.replicate_ddl_command() para hacer el cambio, esa
función debería encargarse de hacer el cambio en todos los nodos.

Si es replicación lógica nativa, entonces si haz los cambios como
sugieres.

>
> Se me olvidó decir que el ALTER COLUMN es para hacer un cambio de tipo de
> dato de una columna.
>
> El cambio deseado sería pasar de un numeric(10, 0) a varchar(21).
>

por qué varchar(21) y no text? cuando pones estas restricciones de
tamaño arbitrarias es posible que luego te veas nuevamente cambiando el
tipo de datos, ya tuviste que pasar de numeric(10,0) a varchar(21)! yo
me aseguraría de tenerlo bien esta vez... o simplemente cambiar a text y
agregar un constraint check (char_length(campo)=21)

>
> All information contained in this document and any attachments are
> CONFIDENTIAL and protected under trade secret laws. If you receive this
> message by mistake, please delete it and notify it immediately to the
> sender.

Esta es una lista pública, al enviar un correo a esta lista aceptaste
que la información que enviaste se enviará a todos los suscriptores
actuales de la lista y que permanecerá pública en múltiples sitios de
archivado en internet, principalmente pero no limitado a:
archives(at)postgresql(dot)org

--
Jaime Casanova
Director de Servicios Profesionales
SystemGuards - Consultores de PostgreSQL

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Ruben Fitó 2021-04-08 05:37:06 Re: ALTER COLUMN en Logical Replication
Previous Message Ruben Fitó 2021-04-07 06:50:00 Re: ALTER COLUMN en Logical Replication