如何在django中执行迁移

时间:2013-03-01 12:47:52

标签: django-models mysqli database-migration

我的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)

for" class Book"我已经使用manage.py syncdb在mysql中创建了表。但我正在使用名为"作者"的新表来更新数据库。我需要执行相同的过程。因为我试图以相同的方式执行后者但是不在数据库中创建表。

需要你的帮助。

2 个答案:

答案 0 :(得分:2)

syncdb应该创建新指定的表;如果没有创建Author,那是因为它没有以有效的方式编码。注意该行

age=int

导致语法错误;你应该用这种方式指定integer field

age=models.IntegerField()

但是,最好让Django South处理与数据库迁移相关的任何事情。

答案 1 :(得分:1)

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

使用南迁移概念。运行以下命令

python manage.py migrate

将在模型中进行更改。