Hi,

This will often happen when you have both model table created in the database 
and then you add some field and syncdb.
Syncdb will not perform operation on tables that are already created, including 
created new fields or intermediate tables.
However, if you start from scratch, this should be fine.

Regards,
Xavier.


Le 6 août 2010 à 23:07, bksfu a écrit :

> Hi All,
> 
> When I run manage.py sqlall test, I get the proper MySQL create
> statements for my models, (Phone,Room).
> Room has a ManyToManyField(Phone) field, so I also get the proper
> intermediate Room_phones table:
> 
> BEGIN;
> CREATE TABLE `Phone` (
>    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY , blah, blah
> );
> CREATE TABLE `Room_phones` (
>    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
>    `room_id` integer NOT NULL,
>    `phone_id` integer NOT NULL,
>    UNIQUE (`room_id`, `phone_id`)
> );
> ALTER TABLE `Room_phones` ADD CONSTRAINT `phone_id_refs_id_61361b28`
> FOREIGN KEY (`phone_id`) REFERENCES `Phone` (`id`);
> CREATE TABLE `Room` (
>    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY , blah, blah
> );
> ALTER TABLE `Room_phones` ADD CONSTRAINT `room_id_refs_id_71507c04`
> FOREIGN KEY (`room_id`) REFERENCES `Room` (`id`);
> COMMIT;
> 
> models.py contains:
> 
> class Phone(models.Model):
>    type = models.CharField(max_length=1, db_column='Type',
> null=False, blank=False)
>    ...
> 
> class Room(models.Model):
>    ...
>    phones = models.ManyToManyField(Phone)
> 
> manage.py syncdb doesn't create the Room_phones table though. Just the
> Room and Phone. I thought it would create it automagically, even
> though I don't have a model in models.py for it??  I'm working with
> MySQL, the db engine is set to InnoDB.  When I put the intermediary
> table model explicitly in models.py and use the 'through' clause on
> the ManyToManyField, there is no problem, syncdb works perfectly.  I
> can do this, but ...
> 
> TIA, Brian
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Django users" group.
> To post to this group, send email to django-us...@googlegroups.com.
> To unsubscribe from this group, send email to 
> django-users+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/django-users?hl=en.
> 

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to