繁体   English   中英

makemigrations/migrate 错误 django.db.utils.OperationalError:没有这样的表

[英]makemigrations/migrate error django.db.utils.OperationalError: no such table

我有一个应用程序,我使用 PostgreSQL 作为数据库管理系统,但是由于发生了一系列事情,现在我想使用 SQLite,但是当我运行 makemigrations 或 migrate 时,它会抛出错误 Z2B9AFB89A6ACC10ADCAZB11。 .utils.OperationalError:没有这样的表:blogapp_category。 使用 PosgreSQL 它可以完美运行,但我无法让它与 SQLite 一起使用...

(我也尝试使用 heroku 部署应用程序并得到同样的错误......)

这是回溯:回溯

这些是我的模型:

blogapp\models.py

class Category(models.Model):
    name = models.CharField(max_length=255)

    class Meta:
    verbose_name_plural = 'Categories'

    def __str__(self):
        return self.name

    def get_absolute_url(self):
        return reverse('home')


class Post(models.Model):
    title = models.CharField(max_length=255)
    title_tag = models.CharField(max_length=255)
    author = models.ForeignKey(to=User, on_delete=models.CASCADE)
    # body = models.TextField()
    body = RichTextField(blank=True, null=True)
    post_date = models.DateField(auto_now_add=True)
    category = models.CharField(max_length=255, default='uncategorized')
    # category podría ser un ManyToManyField
    # https://stackoverflow.com/questions/2642613/what-is-related-name-used-for-in-django
    likes = models.ManyToManyField(
        to=User, related_name='blog_posts', blank=True)  # null has no effect on ManyToManyField
    snippet = models.CharField(max_length=255)
    header_image = models.ImageField(
        blank=True, null=True, upload_to='images/')

    def get_likes(self):
        return self.likes.count()

    def __str__(self):
        return '{} - {}'.format(self.title, self.author)

    def get_absolute_url(self):
        # https://docs.djangoproject.com/en/3.1/ref/urlresolvers/#reverse
        return reverse('article_detail', args=[str(self.id), ])
        # return reverse('home')

    class Meta:
        ordering = ['-post_date']


class Profile(models.Model):
    user = models.OneToOneField(to=User, null=True, on_delete=models.CASCADE)
    bio = models.TextField()
    profile_pic = models.ImageField(
        blank=True, null=True, upload_to='images/profile/')
    website_url = models.CharField(max_length=255, blank=True, null=True)
    fb_url = models.CharField(max_length=255, blank=True, null=True)
    twitter_url = models.CharField(max_length=255, blank=True, null=True)
    instagram_url = models.CharField(max_length=255, blank=True, null=True)
    pinterest_url = models.CharField(max_length=255, blank=True, null=True)
    # new
    followers = models.ManyToManyField(to=User, related_name='followers', blank=True)
    following = models.ManyToManyField(to=User, related_name='following', blank=True)
    default_home = models.BooleanField(default=True)
    # ---

   def __str__(self):
    return str(self.user)

    def get_absolute_url(self):
        return reverse('home')


class Comment(models.Model):
    post = models.ForeignKey(
        to=Post, related_name='comments', on_delete=models.CASCADE) # related_name es el nombre mediante el que vamos a poder acceder a los comentarios desde un post
    name = models.CharField(max_length=255)
    body = models.TextField()
    date_added = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return '{} - {}'.format(self.post.title, self.name)

membersapp\models.py

class DirectMessages(models.Model):
    sender = models.ForeignKey(to=User, on_delete=models.CASCADE, related_name="sender")
    reciever = models.ForeignKey(to=User, on_delete=models.CASCADE, related_name="recipent")
    text = models.TextField()
    timestamp = models.DateTimeField(auto_now_add=True)
    read = models.BooleanField(default=False)
    subject = models.TextField()

    class Meta:
        ordering = ['read', '-timestamp']

这是settings.py中的数据库配置:

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.sqlite3',
    'NAME': BASE_DIR / 'db.sqlite3',
    }
 }

我有一个应用程序,我使用 PostgreSQL 作为数据库管理系统,但是由于发生了一系列事情,现在我想使用 SQLite,但是当我运行 makemigrations 或 migrate 时,它会抛出错误 Z2B9AFB89A6ACC10ADCAZB11。 .utils.OperationalError:没有这样的表:blogapp_category。 使用 PosgreSQL 它可以完美运行,但我无法让它与 SQLite 一起使用...

(我也尝试使用 heroku 部署应用程序并得到同样的错误......)

这是回溯:回溯

这些是我的模型:

blogapp\models.py

class Category(models.Model):
    name = models.CharField(max_length=255)

    class Meta:
    verbose_name_plural = 'Categories'

    def __str__(self):
        return self.name

    def get_absolute_url(self):
        return reverse('home')


class Post(models.Model):
    title = models.CharField(max_length=255)
    title_tag = models.CharField(max_length=255)
    author = models.ForeignKey(to=User, on_delete=models.CASCADE)
    # body = models.TextField()
    body = RichTextField(blank=True, null=True)
    post_date = models.DateField(auto_now_add=True)
    category = models.CharField(max_length=255, default='uncategorized')
    # category podría ser un ManyToManyField
    # https://stackoverflow.com/questions/2642613/what-is-related-name-used-for-in-django
    likes = models.ManyToManyField(
        to=User, related_name='blog_posts', blank=True)  # null has no effect on ManyToManyField
    snippet = models.CharField(max_length=255)
    header_image = models.ImageField(
        blank=True, null=True, upload_to='images/')

    def get_likes(self):
        return self.likes.count()

    def __str__(self):
        return '{} - {}'.format(self.title, self.author)

    def get_absolute_url(self):
        # https://docs.djangoproject.com/en/3.1/ref/urlresolvers/#reverse
        return reverse('article_detail', args=[str(self.id), ])
        # return reverse('home')

    class Meta:
        ordering = ['-post_date']


class Profile(models.Model):
    user = models.OneToOneField(to=User, null=True, on_delete=models.CASCADE)
    bio = models.TextField()
    profile_pic = models.ImageField(
        blank=True, null=True, upload_to='images/profile/')
    website_url = models.CharField(max_length=255, blank=True, null=True)
    fb_url = models.CharField(max_length=255, blank=True, null=True)
    twitter_url = models.CharField(max_length=255, blank=True, null=True)
    instagram_url = models.CharField(max_length=255, blank=True, null=True)
    pinterest_url = models.CharField(max_length=255, blank=True, null=True)
    # new
    followers = models.ManyToManyField(to=User, related_name='followers', blank=True)
    following = models.ManyToManyField(to=User, related_name='following', blank=True)
    default_home = models.BooleanField(default=True)
    # ---

   def __str__(self):
    return str(self.user)

    def get_absolute_url(self):
        return reverse('home')


class Comment(models.Model):
    post = models.ForeignKey(
        to=Post, related_name='comments', on_delete=models.CASCADE) # related_name es el nombre mediante el que vamos a poder acceder a los comentarios desde un post
    name = models.CharField(max_length=255)
    body = models.TextField()
    date_added = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return '{} - {}'.format(self.post.title, self.name)

membersapp\models.py

class DirectMessages(models.Model):
    sender = models.ForeignKey(to=User, on_delete=models.CASCADE, related_name="sender")
    reciever = models.ForeignKey(to=User, on_delete=models.CASCADE, related_name="recipent")
    text = models.TextField()
    timestamp = models.DateTimeField(auto_now_add=True)
    read = models.BooleanField(default=False)
    subject = models.TextField()

    class Meta:
        ordering = ['read', '-timestamp']

这是settings.py中的数据库配置:

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.sqlite3',
    'NAME': BASE_DIR / 'db.sqlite3',
    }
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM