簡體   English   中英

Django-將模型遷移到MySQL數據庫

[英]Django - Migrating models to MySQL database

ProgrammingError at /blog/
(1146, "Table 'project.blog_category' doesn't exist")

不知道是什么原因造成的。 遷移數據似乎並不填充MySQL數據庫。 我也嘗試過syndb。

root@watchtower:/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 })
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文件夾下的migrations文件。 刪除除__init__.py所有文件。 最重要的是,您還可以在MySQL中刪除數據庫,然后分別應用python manage.py makemigrationspython manage.py migrate migration(請記住在應用遷移之前先創建它)。

您需要先運行manage.py makemigrations來創建遷移文件,然后再運行它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM