django - 如何使用新的 Django 迁移向模型添加新字段?

标签 django django-models django-1.7 django-migrations

我正在使用 contribute_to_class 方法,但我不知道如何使用新迁移在数据库中创建字段。

最佳答案

为了回答您的问题,在 Django 1.7 中引入了新的迁移,为了向模型添加新字段,您只需将该字段添加到您的模型并使用 初始化迁移./manage.py makemigrations 然后运行 ​​./manage.py migrate 新字段将添加到您的数据库中。

然而,为了避免处理现有模型的错误,您可以使用 --fake:

  1. 为现有模型初始化迁移:

    ./manage.py makemigrations myapp
    
  2. 现有模型的假迁移:

    ./manage.py migrate --fake myapp
    
  3. 将新字段添加到 myapp.models:

    from django.db import models
    
    class MyModel(models.Model):
        ... #existing fields
        newfield = models.CharField(max_length=100) #new field
    
  4. 再次运行 makemigrations(这将在 migrations 文件夹中添加一个新的迁移文件,将新字段添加到 db):

    ./manage.py makemigrations myapp
    
  5. 再次运行迁移:

    ./manage.py migrate myapp
    

关于django - 如何使用新的 Django 迁移向模型添加新字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24311993/

相关文章:

django - 如何将 QuerySet 过滤/减少到每第 n 行?

python - 如何更新模型但在 Django 中返回未修改的模型?

python - 第三方应用程序的 Django 翻译

Django 1.7 Admin - 如何隐藏时区警告?

python - 具有 ModelChoiceField 和模拟数据的 UnitTest ModelForm

django - django-tasks 与 celery 相比如何?

python - 带有模型继承的 Django 索引

python - 无法导入名称 View

python - 社会认证django

django - 如何从 Wagtail 页面的 QuerySets 中识别私有(private)页面和公共(public)页面?