【问题标题】:I can't migrate at another database我无法迁移到另一个数据库
【发布时间】:2017-05-21 01:29:37
【问题描述】:

我在本地有一个运行良好的项目。我使用postresql。 好的。我在本地的 postgres 中创建了另一个数据库,并在项目的 settings.py 中指定了新的名称/用户/密码。 当我这样做时

$ python manage.py makemigrations

我得到错误

relation 'report_person' not exist

我已经尝试删除(而不是删除)目录“迁移”。删除 pycache。我尝试将 Sqlite3 指定为数据库 - 但同样的错误。

我为什么要问? 我的项目不想使用另一个数据库) 我成功地在heroku上推送了项目。在 settings.py 中指定参数。创建postgresql。但我不能在heroku上进行迁移)同样的错误。 在推送heroku之前我做了makemigrations和git commit,但没有结果 请帮帮我。 谢谢 祝你有美好的一天!

【问题讨论】:

  • 您可以尝试在所有迁移中运行“python manage.py migrate”而不是“python manage.py makemigrations”吗?我想你已经有了所有的迁移,你需要应用它们,而不是创建新的。
  • @OleksandrDashkov 是的,我尝试使用我的数据库成功运行 makemigrations。在 settings.py 中更改数据库后 在新数据库中运行迁移后 - 同样的错误。我尝试在新数据库中将表创建为“report_person”,但出现错误“report_person 的权限被拒绝”这很神奇)
  • 您的迁移中是否创建了“report_person”?
  • @OleksandrDashkov 哦,好的。我理解这个问题。删除迁移成功后,我在 forms.py 中有一个 PersonForm。我的回答中包含此表格的文本。我在这个问题上没有明确说明。

标签: python django postgresql heroku migrate


【解决方案1】:

尝试使用 --fake 进行迁移

python manage.py migrate --fake
python manage.py migrate yourappname --fake

然后再来一次

python manage.py makemigrations
python manage.py migrate

【讨论】:

  • 另外我认为使用新数据库运行 migrate --fake 不是一个好主意。他将有一个空数据库并通过迁移。
【解决方案2】:

哦,我无法解释这种情况。一个小模型中的所有问题。

来自models.py:

from django import models

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

forms.py的这一部分(抓狂):

from django import form

q = models.Person.objects.all()
qty = range(len(q))
PersonForm = type('PersonForm',
                                (forms.Form,),
                                {'person'+'_'+str(q[i].id): forms.BooleanField(label=q[i].name,
                                        required=False) for i in qty})

而且我必须在迁移之前删除这个“PersonForm”。然后迁移将在新的任何数据库中成功。迁移后,我再次输入此表格。 好的。我不明白,为什么?)

【讨论】:

  • 因为您在文件中而不是在类/函数中有查询。当您运行迁移时,django 执行此文件并尝试执行此文件。你的模型还不存在,你有你的例外
  • @OleksandrDashkov Aaa。非常感谢!
猜你喜欢
  • 2019-06-09
  • 2020-03-16
  • 2018-06-01
  • 2023-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-04
  • 1970-01-01
相关资源
最近更新 更多