Re: nombre secuencia truncada

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: raul andrez gutierrez alejo <raulandrez(at)gmail(dot)com>
Cc: Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: nombre secuencia truncada
Date: 2012-04-03 14:39:38
Message-ID: 1333463416-sup-1987@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


Excerpts from raul andrez gutierrez alejo's message of mar abr 03 01:27:42 -0300 2012:

> necesito saber si es posible configurar postgres para que no trunque el
> nombre de la secuencia, estoy trabajando en desarrollo en una maquina
> windows 7 x64 con postgres 9.1, para producción se tiene proyectado usar
> linux (SUSE o RED HAT), la solución fácil es abreviar el nombre de los
> campos, pero la verdad deseo que sea la ultima opción, el problema se
> vuelve evidente cuando se utiliza una herramienta de mapeo PROPEL en
> SYMFONY, el cual busca la secuencia
> "comercial_pedido_detalles_especificacion_id_comercial_pedido_de*
> talles_especificacion_seq*" la cual no existe en postgres porque fue
> truncada a "comercial_pedido_detalles_especificacion_id_comercial_pedido_de"

En el fondo el problema es PROPEL, que es demasiado estúpido para
obtener los nombres correctos de las secuencias desde el catálogo. Si
usara pg_get_serial_sequence() en vez de asumir que se llama
<tabla>_<campo>_seq no tendrías este problema.

Creo que la solución más razonable a tu problema es parchar propel para
que haga eso, y proponer el parche a los desarrolladores.

La alternativa, por supuesto, es hacer como hacemos muchas veces:
ignorar el problema, esperar que otra persona lo corrija, y usar algún
parche por mientras: por ejemplo usar un nombre de tabla y/o columna más
corto de manera que propel no tenga problemas.

Lo otro que se me ocurre es que quizás no sería malo aprender de la
lección que quisiste imponejte: si bien no es buena idea usar
abreviaturas crípticas, eso no quiere decir que todas las abreviaturas
sean malas. Si usas "est" para abreviar "estado", y después resulta que
te confundes porque quizás querías decir "estación", no quiere decir que
usar "dr" para abreviar "doctor" sea confuso, por poner un ejemplo --
sólo quiere decir que escogiste mal la otra abreviatura.

Finalmente, si el módulo es "comercial", para mí lo más lógico es que la
tabla esté en un esquema llamado "comercial"; no que su nombre empiece
con "comercial_".

--
Álvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Miguel Angel 2012-04-03 15:43:16 Migracion de SQL Server 2008 a Postgres 9.1
Previous Message Edwin Quijada 2012-04-03 13:37:50 RE: nombre secuencia truncada