2

Я просто хотел добавить поле на модель.Django 1.8 OperationalError: Нет такого столбца

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 

Спасибо

+0

Django 1.8 не был выпущен. Stick с 1.7.x на данный момент. – Alasdair

+0

:(ОК спасибо – ciyak

ответ

0

Почему вы работаете sqlmigrate? Правильная команда для запуска миграции - это только migrate.

sqlmigrate просто печатает SQL, который будет выполнен при миграции, как показано на рисунке the documentation.

+0

да, но он показывает, когда вы создаете таблицу успешно. Когда я пытаюсь выполнить миграцию, она ничего не делает. – ciyak

0

Вы пытались запустить python manage.py makemigrations, а затем python manage.py migrate или python manage.py syncdb?

+0

да, я нашел проблему. Django 1.8 был бета-версией. Я переключился на 1.7 teşekkürler – ciyak

Смежные вопросы