2015-10-01 55 views
1

在创建我得到这个错误的项目,但我可以看到sqlallcategory_id表items_item已经没有列名为CATEGORY_ID

table items_item has no column named category_id 

迁移命令:

$ python manage.py makemigrations items 
No changes detected 

$ python manage.py migrate 
Running migrations: 
    No migrations to apply. 

model.py

from django.db import models 

class Category(models.Model): 
    name = models.CharField(max_length=200) 

# Create your models here. 
class Item(models.Model): 
    name = models.CharField(max_length=200) 
    description = models.TextField(null=True, blank=True) 
    image = models.ImageField(upload_to="item_images") 
    category = models.ForeignKey(Category) 

    show_in_front_page= models.BooleanField(default=True) 
    always_show_in_front_page= models.BooleanField(default=True) 
    is_trending=models.BooleanField(default=True) 

sqlall

# $ python manage.py sqlall items 
BEGIN; 
CREATE TABLE "items_category" (
    "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, 
    "name" varchar(200) NOT NULL 
) 
; 
CREATE TABLE "items_item" (
    "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, 
    "name" varchar(200) NOT NULL, 
    "description" text, 
    "image" varchar(100) NOT NULL, 
    "category_id" integer NOT NULL REFERENCES "items_category" ("id"), 
    "show_in_front_page" bool NOT NULL, 
    "always_show_in_front_page" bool NOT NULL, 
    "is_trending" bool NOT NULL 
) 
; 
CREATE INDEX "items_item_6f33f001" ON "items_item" ("category_id"); 

COMMIT; 

admin.py

from django.contrib import admin 

# Register your models here. 
from .models import Item, Category 


admin.site.register(Item) 
admin.site.register(Category) 
+1

你有没有添加的“类别”字段,因为您最初创建的模型,而不是做了[移动](https://docs.djangoproject.com/en/1.8/topics/migrations/)? – Oli

+0

迁移命令返回否否应用迁移。 – sadaf2605

+0

“makemigrations”如何? – Oli

回答

2

如果category_id列已经在应用迁移文件,但还没有在数据库中创建,那么最简单的解决将是手动添加列。从上面的sqlall输出中计算出SQL很容易。

./manage.py dbshell # open a db shell 

# Add the column 
ALTER TABLE items_item ADD COLUMN "category_id" integer NOT NULL REFERENCES "items_category" ("id"); 
# Add the index 
CREATE INDEX "items_item_6f33f001" ON "items_item" ("category_id"); 
相关问题