2016-11-04 17 views
0
ProgrammingError at /blog/ 
(1146, "Table 'project.blog_category' doesn't exist") 

何が原因なのかよく分かりません。データの移行は、MySQL DBにデータを投入していないようです。私もsyndbを試しました。Django - モデルをMySQLデータベースに移行する

[email protected]:/project# ./manage.py migrate 
Operations to perform: 
    Synchronize unmigrated apps: messages, staticfiles, watchtower 
    Apply all migrations: blog, contenttypes, sessions, admin, auth 
Synchronizing apps without migrations: 
    Creating tables... 
    Running deferred SQL... 
    Installing custom SQL... 
Running migrations: 
    No migrations to apply. 

手動でDBテーブルを作成できますか?ここで私はblog.CatergoryからCategoryにあなたの外部キー関係を変えmodel.py

from django.db import models 
from django.db.models import permalink 

class Blog(models.Model): 
    title = models.CharField(max_length=100, unique=True) 
    slug = models.SlugField(max_length=100, unique=True) 
    body = models.TextField() 
    posted = models.DateTimeField(db_index=True, auto_now_add=True) 
    category = models.ForeignKey('blog.Category') 

    def __unicode__(self): 
     return '%s' % self.title 

    @permalink 
    def get_absolute_url(self): 
     return ('view_blog_post', None, { 'slug': self.slug }) 

class Category(models.Model): 
    title = models.CharField(max_length=100, db_index=True) 
    slug = models.SlugField(max_length=100, db_index=True) 

    def __unicode__(self): 
     return '%s' % self.title 

    @permalink 
    def get_absolute_url(self): 
     return ('view_blog_category', None, { 'slug': self.slug }) 
+1

'' 'manage.py migrate'''の前に' 'manage.py makemigrations my_app_name'''を実行しましたか?また、「データの移行」という意味を明確にしてください。 – Art

+1

外部キーはblog.Categoryであってはいけません。ちょうどカテゴリ。 –

答えて

0
from django.db import models 
from django.db.models import permalink 

class Blog(models.Model): 
    title = models.CharField(max_length=100, unique=True) 
    slug = models.SlugField(max_length=100, unique=True) 
    body = models.TextField() 
    posted = models.DateTimeField(db_index=True, auto_now_add=True) 
    category = models.ForeignKey('Category') 

    def __unicode__(self): 
     return '%s' % self.title 

    @permalink 
    def get_absolute_url(self): 
     return ('view_blog_post', None, { 'slug': self.slug }) 

class Category(models.Model): 
    title = models.CharField(max_length=100, db_index=True) 
    slug = models.SlugField(max_length=100, db_index=True) 

    def __unicode__(self): 
     return '%s' % self.title 

    @permalink 
    def get_absolute_url(self): 
     return ('view_blog_category', None, { 'slug': self.slug }) 

です。

さらに、私は、あなたのアプリケーションフォルダのmigrationsフォルダにある移行ファイルを削除することをお勧めします。すべてのファイルを削除します(__init__.pyを除く)。また、データベースをMySQLにドロップしてから、それぞれpython manage.py makemigrationspython manage.py migrateを適用することもできます(マイグレーションを適用する前に作成してください)。

0

実行ファイルを作成するには、実行する前にmanage.py makemigrationsを実行する必要があります。

関連する問題