On 25 May 18:00, Pierre-Louis Bonicoli wrote:
> On 21/05/2015 17:52, Cédric Krier wrote:
> > I'm facing a limitation with how trytond generate the table name for a
> > ModelSQL. Databases have different length limitation for schema name.
> > For example,
> > PostgreSQL has the limit to 64 when Oracle has the limit to 30
> > (yes I'm working on an Oracle backend).
> > 
> > I don't want that we change our naming convention because it is quite
> > good and reducing the name will just bring a lot in readability.
> > And we will be forced to use the least common constraint.
> > 
> > So my idea is to have a configuration section which will provide the
> > table name to use for a Model.
> > 
> > Example:
> > 
> > [table]
> > account.invoice.payment_term.line.relativedelta = acc_inv_pt_l_reldelta
> > account.payment.sepa.message = acc_payment_sepa_msg
> > 
> > Of course such configuration could not be modified once a database has
> > been created (or the table should be renamed).
> > 
> > Side effect, it could also be used to fix naming conflict between 2
> > unrelated module (at the database level not Model.__name__).
> > 
> > What do you think?
> 
> The names of the tables should be identical for two installations using
> the same backend. A module should not require this kind of configuration.
> 
> Could not we delegate the transformation of a model name into a table
> name to the backends with something like that:
> 'cls._table = backend.TableHandler.name(cls.__name__)' ?

OK but what is your proposal on how such method will always create valid
table name.

> Another solution could be to add a 'max_name_length' for each backend
> and to implement 'truncate_table' in the core (like sqlalchemy and
> django [1]).

And how do you avoid name collision?

> Besides we should take care of the 'history' tables for which the suffix
> '__history' is added.
> 
> Ideally, the max length should be configurable using trytond.conf:
> PostgreSQL could be recompiled [2].

That's why it should be a case by case solution because there is no
silver bullet here for me.

-- 
Cédric Krier - B2CK SPRL
Email/Jabber: [email protected]
Tel: +32 472 54 46 59
Website: http://www.b2ck.com/

Reply via email to