【问题标题】:No migration fixtures found but table not updating with Django and South未找到迁移固定装置,但表未使用 Django 和 South 更新
【发布时间】:2011-10-09 23:01:17
【问题描述】:

尝试更新我的应用,使其具有管理页面,因此我运行了 syncdb:

tyre77$ python manage.py syncdb
Syncing...
Creating tables ...
Installing custom SQL ...
Installing indexes ...
No fixtures found.

Synced:
 > django.contrib.auth
 > django.contrib.contenttypes
 > django.contrib.sessions
 > django.contrib.sites
 > django.contrib.messages
 > django.contrib.staticfiles
 > south
 > django.contrib.admin

Not synced (use migrations):
 - OmniCloud_App
(use ./manage.py migrate to migrate these)

所以没关系! South 已安装,因此我们只需进行一些迁移:

tyre77$ python manage.py migrate
Running migrations for OmniCloud_App:
- Nothing to migrate.
 - Loading initial data for OmniCloud_App.
No fixtures found

等等什么?你刚刚告诉我要迁移,所以我做了,但没有找到固定装置,所以它没有修复未同步的应用程序!

【问题讨论】:

  • 您确定您的灯具设置正确吗?
  • 老实说,我不知道你在说什么。夹具?
  • 对不起,我误读了这个问题。您没有要加载的固定装置,因此预计会出现“未找到固定装置”消息。您是否为您的应用创建了任何迁移?如果你没有,什么都不会运行。
  • 这不是我在第二段代码中所做的吗?我执行了python manage.py migrate。这不是说没有变化吗?

标签: python django migration django-south


【解决方案1】:

“未找到固定装置”。与南方无关。 South 只是在执行架构/数据迁移后尝试重新加载夹具数据。根据您的输出,您似乎已经处于迁移的最新版本。

在这种情况下它正在寻找的夹具是:initial_data.[xml/yaml/json]。这也是运行 syncdb 时加载的同一个夹具。

例如,当我尝试迁移我的应用程序时:

python manage.py migrate
Running migrations for home:
 - Migrating forwards to 0001_initial.
 > home:0001_initial
 - Loading initial data for home.
No fixtures found.

但是,如果我提供initial_data.json,它将在执行迁移后加载此夹具。

使用南方

根据您的问题,听起来您可能没有为您的 django 应用程序生成任何迁移。您可以从运行以下命令开始:

python manage.py schemamigration OmniCloud_App --initial

此命令将生成一个名为0001_initial.py 的文件。当您运行 python manage.py migrate 时,它将针对您的数据库运行此迁移。

【讨论】:

    猜你喜欢
    • 2011-04-29
    • 2014-08-11
    • 2012-12-18
    • 2015-07-28
    • 1970-01-01
    • 1970-01-01
    • 2011-08-18
    • 1970-01-01
    • 2011-09-28
    相关资源
    最近更新 更多