2017-02-15 101 views
0

後,我有一個model.py Django應用程序「的myapp」與此:的Django 1.10.5:關係「myapp_mymodel」不存在,甚至遷移

而且在同一個文件夾中,我有一個文件夾migrations用空__init__.py和2個文件:

from django.db import models 
from django.contrib.postgres.fields import ArrayField 

class Characteristic(models.Model): 
    name = models.CharField(max_length=200) 
    core = models.BooleanField(default=False) 
    synonyms = ArrayField(
     models.CharField(max_length=200, blank=True), 
     size=20 
     ) 

0001_initial.py

from __future__ import unicode_literals 

import django.contrib.postgres.fields 
from django.db import migrations, models 


class Migration(migrations.Migration): 

    initial = True 

    dependencies = [ 
    ] 

    operations = [ 
     migrations.CreateModel(
      name='characteristics', 
      fields=[ 
       ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 
       ('name', models.CharField(max_length=200)), 
       ('synonyms', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, max_length=200), size=20)), 
      ], 
     ), 
    ] 

第二個文件:

from __future__ import unicode_literals 

from django.db import migrations, models 


class Migration(migrations.Migration): 

    dependencies = [ 
     ('myapp', '0001_initial'), 
    ] 

    operations = [ 
     migrations.AddField(
      model_name='characteristics', 
      name='core', 
      field=models.BooleanField(default=False), 
     ), 
    ] 

然而,在視圖中,當試圖創建模型的實例:

characteristic = Characteristic(name=attribute.decode('utf-8'), synonyms=[]) 
characteristic.save() 

我得到一個錯誤:

ProgrammingError: relation "myapp_characteristic" does not exist 

我做:python manage.py makemigrations myapp,我必須在文件頂部from myapp.models import Characteristic

有誰知道我在哪裏錯了?

回答

1

Makemigrations命令只是爲數據庫中的更改創建遷移。它在DB中執行任何類型的修改。

python manage.py migrate 

above命令在數據庫中進行實際修改並在遷移表中創建一個條目。以便Django可以瞭解哪些遷移實際上已遷移

相關問題