2013-03-01 2 views
1

мой файл model.py являетсякак выполнить миграцию в Джанго

from django.db import models 

class Book(models.Model): 
    book_id=models.AutoField(primary_key=True,unique=True) 
    book_name=models.CharField(max_length=30) 
    author_name=models.CharField(max_length=30) 
    publisher_name=models.CharField(max_length=40) 
    def __unicode__(self): 
     return "%d %s %s %s" % (self.book_id,self.book_name, self.author_name,self.publisher_name) 


class Author(models.Model): 
    author_id=models.AutoField(primary_key=True) 
    first_name = models.CharField(max_length=30) 
    last_name = models.CharField(max_length=40) 
    email = models.EmailField() 
    book=models.ForeignKey(Book) 

    def __unicode__(self): 
     return u'%d %s %s' % (self.author_id,self.first_name, self.last_name) 

для «класса Book» я уже создал таблицу в MySQL с помощью manage.py syncdb .Но я нахожусь в пути обновления БД с новым именем таблицы как «Автор» мне нужна процедура для выполнения того же. Потому что я пытаюсь сделать последнее таким же образом, но таблица не создается в db.

Вам нужна ваша помощь.

ответ

1
`python syncdb` should not create any changes in the existing table 

Использование юг миграции concept.run следующую команду

python manage.py migrate 

будет вносить изменения в модели.

2

syncdb должен создавать новые таблицы; если Author не создается, это происходит потому, что он не закодирован в правильном порядке. Обратите внимание, что строка

age=int 

приводит к синтаксической ошибке; Вы должны указать integer field таким образом:

age=models.IntegerField() 

Однако вы лучше иметь Django South заботясь ни о чем вы, связанных с миграцией БД.