#27708: Relation between tables in different schemas with big names -------------------------------------+------------------------------------- Reporter: felipeps | Owner: nobody Type: Bug | Status: new Component: Migrations | Version: master Severity: Normal | Resolution: Keywords: different schema | Triage Stage: Accepted relation | Has patch: 0 | Needs documentation: 0 Needs tests: 1 | Patch needs improvement: 0 Easy pickings: 0 | UI/UX: 0 -------------------------------------+------------------------------------- Description changed by felipeps:
Old description: > I'm using Django 1.9.7 with Postgresql. > > When I try to migrate a relation between two tables in different > schemas, for example: a table named ''**product**'', which is in a schema > named ''**dataflex**'' and another table named > ''**client_product_sale_stc**'' in another schema. > > I got this error: > > ---- > > django.db.utils.ProgrammingError: ERRO: syntax error at or near > "dataflex" > LINE 1: ...CONSTRAINT "client_product_setor_id_52aad07a_fk_"dataflex".... > > ---- > > After sometime trying to figure It out a solution for this problem, I > tried to change the schemas's name to just ''**df**'' instead of > ''**dataflex**'' and It worked perfectly. > > I also tried to decreased table's name size and It worked just like when > I decreased schema's name size, so It seems to be a problem with big > constraints names. > > I'm using the following syntax: > > db_table = '"dataflex"."product"' > > **setor_id** is the name of the field of the relation in > client_product_sale_stx model/table. > product model/table does not have a field for the relation. > > **Examples models:** > {{{ > class ClientProductSaleStc(): > local_id = models.ForeignKey(EstoqueLocal, db_column='local_id') > empresa_id = models.ForeignKey(Sced015, db_column='empresa_id') > subcategoria_id = models.ForeignKey(ProdutoSubcategoria, > db_column='subcategoria_id') > produto_id = models.ForeignKey(ProdutoProduto, > db_column='produto_id') > setor_id = models.ForeignKey(Product, db_column='setor_id') > > class Meta: > db_table = 'client_product_sale_stc' > > class Product(): > recnum = models.BigIntegerField(unique=True) > hor_due = models.DecimalField(max_digits=2, decimal_places=0) > min_due = models.DecimalField(max_digits=2, decimal_places=0) > > class Meta: > db_table = '"dataflex"."product"' > }}} New description: I'm using Django 1.9.7 with Postgresql. When I try to migrate a relation between two tables in different schemas, for example: a table named ''**product**'', which is in a schema named ''**dataflex**'' and another table named ''**client_product_sale_stc**'' in another schema. I got this error: ---- django.db.utils.ProgrammingError: ERRO: syntax error at or near "dataflex" LINE 1: ...CONSTRAINT "client_product_setor_id_52aad07a_fk_"dataflex".... ---- After sometime trying to figure It out a solution for this problem, I tried to change the schemas's name to just ''**df**'' instead of ''**dataflex**'' and It worked perfectly. I also tried to decreased table's name size and It worked just like when I decreased schema's name size, so It seems to be a problem with big constraints names. I'm using the following syntax: db_table = '"dataflex"."product"' **setor_id** is the name of the field of the relation in client_product_sale_stx model/table. product model/table does not have a field for the relation. **Examples models:** {{{ class ClientProductSaleStc(): setor_id = models.ForeignKey(Product, db_column='setor_id') class Meta: db_table = 'client_product_sale_stc' class Product(): recnum = models.BigIntegerField(unique=True) hor_due = models.DecimalField(max_digits=2, decimal_places=0) min_due = models.DecimalField(max_digits=2, decimal_places=0) class Meta: db_table = '"dataflex"."product"' }}} -- -- Ticket URL: <https://code.djangoproject.com/ticket/27708#comment:7> Django <https://code.djangoproject.com/> The Web framework for perfectionists with deadlines. -- You received this message because you are subscribed to the Google Groups "Django updates" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-updates+unsubscr...@googlegroups.com. To post to this group, send email to django-updates@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/066.953104745149ff3b3912c4086482fbd1%40djangoproject.com. For more options, visit https://groups.google.com/d/optout.