#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.

Reply via email to