Thank you very much Simone and Michal for your timely response. I made all 
the fields those are part of primary keys as unique and added a dummy 
auto-increment ID for these tables and did migrations.
So far so good. 

Thanks,
Ramesh.

On Tuesday, January 3, 2017 at 5:35:07 PM UTC+5:30, ramesh wrote:
>
> Hi,
>
> Below is the model generated for one of the table from the legacy database 
> using "inspectdb" 
>
> class Test(models.Model):
>     field1 = models.AutoField(db_column='Field1')  # Field name made 
> lowercase.
>     field2 = models.ForeignKey('Field2', models.DO_NOTHING, 
> db_column='Field2')  # Field name made lowercase.
>     field3 = models.CharField(db_column='Field3', max_length=200)  # Field 
> name made lowercase.
>     field4 = models.CharField(db_column='Field4', max_length=300, 
> blank=True, null=True)  # Field name made lowercase.
>
>     class Meta:
>         managed = False
>         db_table = 'test'
>         unique_together = (('field1', 'field2'),)
>
>
> Table definition in MySQL:
>     CREATE TABLE comment (
>         Field1                          INT             UNSIGNED    NOT 
> NULL    AUTO_INCREMENT              COMMENT 'Field1',    
>         Field2                          INT             UNSIGNED    NOT 
> NULL                                COMMENT 'Field2',
>         Field3                          VARCHAR(200)                NOT 
> NULL                                COMMENT 'Field3',
>         Field4                          
> VARCHAR(300)                            DEFAULT NULL                COMMENT 
> 'Field4',
>         KEY ( Field2 ),
>         FOREIGN KEY (Field2) REFERENCES item (Field2) ON DELETE CASCADE,
>         PRIMARY KEY  ( Field1, Field2 )
>     ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
>
> Migrations failed with the error,
>     "A model can't have more than one AutoField."
> AssertionError: A model can't have more than one AutoField.
>
> Tried work around of
>
> from compositekey import db
>
> id = db.MultiFieldPK("field1", "field2")
>
>
> Now a different error, 
>
>     from django.db.models.sql.aggregates import Aggregate
> ImportError: No module named aggregates
>
>
> Another work around of defining a new auto_increment field as primary key 
> but here one of the composite keys (field1) is auto_incremental causing 2 
> auto_increment fields in a table.
>
> Also this needs MySQL table alter, as this is a legacy database with many 
> tables, this is quite difficult.
>
> Please advise me on work around, correct me if I am missing some thing 
> here in the process.
>
> Thanks in advance.
>
> Ramesh. 
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/7b4daaf9-6666-41b6-b0af-c727fa500dcb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to