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/
