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

不確定是什麼原因造成的。遷移數據似乎沒有填充MySQL數據庫。我也試過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. 

我可以手動創建數據庫表嗎?這裏是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 makemigrations my_app_name'''在'''manage.py migrate'''之前?另外,請澄清「遷移數據」的含義。 – 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 }) 

我改變了你的外鍵關係從blog.CatergoryCategory

此外,我建議刪除您的應用程序文件夾中migrations文件夾下的遷移文件。刪除除__init__.py之外的所有文件。除此之外,您還可以將數據庫放入MySQL中,然後分別應用python manage.py makemigrationspython manage.py migrate(記住在應用遷移之前創建它)。

0

在運行遷移文件之前,您需要運行manage.py makemigrations來創建遷移文件。