Django 迁移并不总是有效
Django migration doesn't always work
好的,所以我在 django 1.8 中遇到了一些迁移问题,我需要每次都手动删除我的数据库 table 来解决。
我的问题如下 - 每次我通过添加新字段和 运行
更改 table 后
python manage.py makemigrations
python manage.py migrate
它说没有要应用的更改。 (迁移文件夹为空)
(它没有提取我在模型文件中所做的更改)
最后 table 保持旧结构,在我测试时它给我错误。
如果我直接将 table 放入数据库并重新启动,它可以工作,但很烦人,因为我每次都必须重新创建测试数据。
是迁移中的错误还是我的问题?
例如,这是我的 table 来自模型文件,但它发生在其他 table 之前。
@with_author
class BOM(models.Model):
name = models.CharField(max_length=200,null=True, blank=True)
description = models.TextField(null=True, blank=True)
product= models.ForeignKey(Product, on_delete=models.PROTECT)
material = models.OneToOneField(Material, related_name = 'material')
creation_time = models.DateTimeField(auto_now_add=True)
materialuom = models.CharField(max_length=1,
choices=UOM_CHOICES)
quantity = models.DecimalField(max_digits=19, decimal_places=10)
waste = models.DecimalField(null=True, blank=True,max_digits=19, decimal_places=10)
def __unicode__(self):
return u'%s %s' % ( self.id, self.name)
好的,感谢@ahmed 的评论,我完成了工作。
每次执行 python manage.py makemigrations appname
时都必须输入 appname 。没有 appname 功能并不总是有效。
不过我认为django1.8的迁移过程还是有问题。
好的,所以我在 django 1.8 中遇到了一些迁移问题,我需要每次都手动删除我的数据库 table 来解决。
我的问题如下 - 每次我通过添加新字段和 运行
更改 table 后python manage.py makemigrations
python manage.py migrate
它说没有要应用的更改。 (迁移文件夹为空)
(它没有提取我在模型文件中所做的更改)
最后 table 保持旧结构,在我测试时它给我错误。
如果我直接将 table 放入数据库并重新启动,它可以工作,但很烦人,因为我每次都必须重新创建测试数据。
是迁移中的错误还是我的问题?
例如,这是我的 table 来自模型文件,但它发生在其他 table 之前。
@with_author
class BOM(models.Model):
name = models.CharField(max_length=200,null=True, blank=True)
description = models.TextField(null=True, blank=True)
product= models.ForeignKey(Product, on_delete=models.PROTECT)
material = models.OneToOneField(Material, related_name = 'material')
creation_time = models.DateTimeField(auto_now_add=True)
materialuom = models.CharField(max_length=1,
choices=UOM_CHOICES)
quantity = models.DecimalField(max_digits=19, decimal_places=10)
waste = models.DecimalField(null=True, blank=True,max_digits=19, decimal_places=10)
def __unicode__(self):
return u'%s %s' % ( self.id, self.name)
好的,感谢@ahmed 的评论,我完成了工作。
每次执行 python manage.py makemigrations appname
时都必须输入 appname 。没有 appname 功能并不总是有效。
不过我认为django1.8的迁移过程还是有问题。