架构迁移和默认值

2024-09-28 05:25:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我用南方来管理我的数据库。好像每次我改变我的模型制作方法的时候,我都要为迁移做一堆体操。例如,假设我有这样一个类:

class Entry(models.Model):

    title = models.CharField(max_length=80)
    author = models.ForeignKey(User)
    pubDate = models.DateTimeField()
    tags = models.ManyToManyField(Tag)
    text = models.TextField()

{cda>另一个类的键是:

^{pr2}$

这很简单,但是如果我要在Entry中将名称pubDate更改为pub_date这样简单的操作,为了只为这个名称更改正确地执行模式迁移,我必须设置:

^{3}$

对于Entry中的pubDate和Comment中的entry字段,否则在尝试运行迁移时会出现以下异常:

The field 'Comment.entry' does not have a default specified, yet is NOT NULL.

然后我必须返回并去掉默认值/null值。有没有一种不那么乏味的方法来完成这项工作,还是在将模型提交到迁移之前,我必须认真考虑一下我的模型?在开始阶段,如果您不想保存任何数据,那么只设置和删除数据库是否更有意义?如果是这样,最简单的方法是什么?在


Tags: 方法模型名称数据库modeltitlemodelscomment
1条回答
网友
1楼 · 发布于 2024-09-28 05:25:57

您需要创建一个迁移类,使用:

python manage.py datamigration yourapp change_name_to_pub_date

重写前进和后退的方法:

^{pr2}$

现在,跑:

python manage.py migrate yourapp

相关问题 更多 >

    热门问题