簡體   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