【问题标题】:how to fix database problem in django (postgresql)如何修复 django 中的数据库问题(postgresql)
【发布时间】:2019-09-26 01:27:07
【问题描述】:

我在我的项目中编写了一些模型,然后我从我的书籍模型中删除了一个 uuid 字段并删除了 0001_initial.py 文件并运行 make migrations 和 migrate

但是当我运行 py manage.py migrate 时,显示这条消息:

  • 没有要应用的迁移。

当运行 makemigrations 时:

“main_app”的迁移:

main_app\migrations\0001_initial.py

  • 创建模型作者

  • 创建模型书

  • 创建模型类型

  • 向书籍添加领域类型

这是我的模型:


class Genre(models.Model):
    genre       = models.CharField(max_length=100)

    def __str__(self):
        return self.genre


class Book(models.Model):
    book_name   = models.CharField(max_length=150)
    summary     = models.TextField(max_length=1000, null=True,blank=True)
    author      = models.ForeignKey('Author', on_delete=models.CASCADE)
    genre       = models.ManyToManyField(Genre)
    status = [
        ('a', 'available'),
        ('b', 'borrowed'),
        ('r', 'reserved'),
    ]
    book_status = models.CharField(max_length=1, choices=status, default='a')
    isbn        = models.CharField(max_length=13,
                            help_text='read '
            '<a href="https://www.isbn-international.org/content/what-isbn">'
                                      'here'
                                      '</a>'
                                      ' to help ')

    def __str__(self):
        return '{0}({1})'.format(self.book_name, self.author)

    def get_absolute_url(self):
        return reverse('main_app:book-detail', args=[self.id])


class Author(models.Model):
    first_name  = models.CharField(max_length=200)
    last_name   = models.CharField(max_length=200)
    rate        = models.IntegerField(default=0)

    def __str__(self):
        return '{0} {1}'.format(self.first_name,self.last_name)

【问题讨论】:

  • 我不确定是否可以提供帮助 - 但我真的不确定您为什么只删除了第一次迁移。当您遇到这样的 db/migration 问题时,我的建议是删除所有迁移,然后再次运行 makemigrations(当然,接下来是 migrate
  • 如果删除迁移,还需要删除数据库。但不要删除迁移。

标签: python django postgresql


【解决方案1】:

同时删除您从表 django_migrations 中删除的迁移条目。

【讨论】:

  • 我将尝试通过将其添加到我的脚本中来消除整个 shebang:psql -c 'delete from django_migrations'
  • 脚本删除整个数据库,包括那个表,所以没有变化。
猜你喜欢
  • 1970-01-01
  • 2020-02-28
  • 1970-01-01
  • 2012-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-04
相关资源
最近更新 更多