【问题标题】:Django 1.8 OperationalError: No such columnDjango 1.8 OperationalError:没有这样的列
【发布时间】:2015-02-25 02:31:20
【问题描述】:

我只是想在模型上添加一个字段。

class Categories(models.Model):
    #this IDUnique = models.IntegerField(max_length=11, blank=True, null=True)
    IDParent = models.IntegerField(max_length=11, blank=True, null=True)
    Name = models.CharField(max_length=45, blank=False)

当我尝试迁移时:

    Operations to perform:
  Synchronize unmigrated apps: formtools, social_auth, crispy_forms, django_comments
  Apply all migrations: sessions, admin, sites, auth, appname, contenttypes
Synchronizing apps without migrations:
  Creating tables...
  Installing custom SQL...
  Installing indexes...
Running migrations:
  No migrations to apply.

删除并再次迁移并尝试sqlmigrate

   BEGIN;
CREATE TABLE "appname_category__new" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "IDParent" integer NULL, "Name" varchar(45) NOT NULL, "IDUnique" integer NULL);
INSERT INTO "appname_category__new" ("Name", "id", "IDParent") SELECT "Name", "id", "IDParent" FROM "appname_category";
DROP TABLE "appname_category";
ALTER TABLE "appname_category__new" RENAME TO "appname_category";

COMMIT;

还是说

no such column: onlinemarket_categories.IDUnique

谢谢

【问题讨论】:

  • Django 1.8 尚未发布。现在坚持使用 1.7.x。

标签: django django-models django-database django-migrations django-1.8


【解决方案1】:

您是否尝试过运行python manage.py makemigrations,然后运行python manage.py migrate 或python manage.py syncdb?

【讨论】:

  • 是的,我找到了问题。 Django 1.8 是测试版。我切换到 1.7 teşekkürler
【解决方案2】:

你为什么要运行sqlmigrate?运行迁移的正确命令是 migrate。

sqlmigrate 只是打印将在迁移中执行的 SQL,如 the documentation 所示。

【讨论】:

  • 是的,但它会在您成功创建表时显示。当我尝试迁移时,它什么也没做。
猜你喜欢
  • 1970-01-01
  • 2020-08-16
  • 1970-01-01
  • 2020-12-10
  • 2019-05-20
  • 1970-01-01
  • 1970-01-01
  • 2020-04-30
  • 2014-12-06
相关资源
最近更新 更多