【问题标题】:how to perform migration in django如何在 django 中执行迁移
【发布时间】:2013-02-15 23:31:00
【问题描述】:

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

对于“class Book”,我已经使用manage.py syncdb 在 MySQL 中创建了表。但是我正在使用名为“Author”的新表更新数据库,我需要执行相同操作的过程。因为我试图以相同的方式执行后者,但未在数据库中创建表。

【问题讨论】:

    标签: django django-models database-migration


    【解决方案1】:
    `python syncdb` should not create any changes in the existing table
    

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

    python manage.py migrate
    

    将对模型进行更改。

    【讨论】:

      【解决方案2】:

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

      age=int
      

      导致语法错误;你应该这样指定integer field

      age=models.IntegerField()
      

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

      【讨论】:

        猜你喜欢
        • 2015-10-20
        • 2018-05-05
        • 2018-07-20
        • 2018-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-03
        相关资源
        最近更新 更多