【问题标题】:Django changed field name and south but nothing changed : Many-to-many "through"Django 更改了字段名称和南,但没有任何改变:多对多“通过”
【发布时间】:2015-02-13 04:34:06
【问题描述】:

我将字段名称从 theaters 更改为 showtimes

#from
theaters   = models.ManyToManyField(Movie,null=True,blank=True,through="Showtime")
#to
showtimes   = models.ManyToManyField(Movie,null=True,blank=True,through="Showtime")

但是当我使用南迁移它时,什么也没有发生:

$./manage.py schemamigration movie --auto
Nothing seems to have changed.
$./manage.py migrate movie
Running migrations for movie:
- Nothing to migrate.
- Loading initial data for movie.
Installed 0 object(s) from 0 fixture(s)

我觉得很奇怪,有人可以教我迁移它的正确方法吗?

【问题讨论】:

  • 我无法备份,但我认为through 参数用于命名表(如果给定)。您是否尝试过您当前的代码?
  • 我试试我的代码。效果很好。看来更改的字段并没有影响当前代码

标签: python django django-south


【解决方案1】:

数据库的架构级别没有变化,因此南不会执行任何操作。在 django 1.7 及更高版本的迁移中会有迁移,因为 django 无法判断任何自定义(或未来)数据库引擎是否会更改架构中的某些内容(例如非 SQL 数据库),South 没有该功能,它只放在实际使用支持的数据库中的模式进行某些操作的迁移操作中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-11
    • 1970-01-01
    • 2020-01-02
    相关资源
    最近更新 更多