关系不存在,在 PostgreSQL、Django 中
Relation does not exist, in PostgreSQL, Django
所以我在 Django 中创建了一个新模型,然后以正确的顺序执行 python manage.py makemigrations
和 python manage.py migrate
。但是由于某种原因,我不小心在 PgAdmin 中删除了 table(relation)(我知道这听起来很傻)。所以我尝试删除迁移文件夹中的所有文件,但 init.py 文件。然后我再次运行上面的两个命令,但是在PgAdmin中看不到table。
除了在 PgAdmin 中创建一个 table 自己,我还应该做什么?
提前致谢。
它不会工作,因为所有迁移的条目已经存储在名为 django_migrations
的 table 中。因此,即使您 运行 makemigrations
删除所有迁移文件后,也不会创建新文件。所以这里有三种方法可以修复它。
一:删除数据库(如果数据不重要)
删除数据库并创建一个新数据库。 运行 makemigrations
和 migrate
命令。
二:手动创建table
如果你已经删除了所有的迁移文件,你最好恢复它们。您可以为此使用 git:git checkout /path/to/migration/folder
。然后你可以手动创建table.
三:从django_migrations
中删除条目
我假设你已经删除了所有的迁移文件。所以这部分涵盖了整个项目。但是@DenizKaplan 解释了更好的方法。
如果您没有使用git,或者没有办法恢复这些文件,那么您可以按照以下步骤操作:
- 备份你的数据库
- 删除
djang_migrations
table 中的所有条目
- 运行
./manage.py makemigrations
生成迁移文件
- 运行
./manage.py migrate <your lost app>
迁移您的应用程序(您在数据库中丢失了)。
- 运行
./manage.py migrate --fake
伪造其余应用程序。
您需要检查一些步骤。如果在 makemigrations
操作后输出为空,您可能需要检查 django_migrations
table 以删除与您正在使用的应用程序相关的行。如果一开始这没有帮助,您需要检查 INSTALLED_APPS,也许您可能不小心删除了应用程序。如果所有这些都不起作用,请提供有关错误的一些详细信息。
所以我在 Django 中创建了一个新模型,然后以正确的顺序执行 python manage.py makemigrations
和 python manage.py migrate
。但是由于某种原因,我不小心在 PgAdmin 中删除了 table(relation)(我知道这听起来很傻)。所以我尝试删除迁移文件夹中的所有文件,但 init.py 文件。然后我再次运行上面的两个命令,但是在PgAdmin中看不到table。
除了在 PgAdmin 中创建一个 table 自己,我还应该做什么?
提前致谢。
它不会工作,因为所有迁移的条目已经存储在名为 django_migrations
的 table 中。因此,即使您 运行 makemigrations
删除所有迁移文件后,也不会创建新文件。所以这里有三种方法可以修复它。
一:删除数据库(如果数据不重要)
删除数据库并创建一个新数据库。 运行 makemigrations
和 migrate
命令。
二:手动创建table
如果你已经删除了所有的迁移文件,你最好恢复它们。您可以为此使用 git:git checkout /path/to/migration/folder
。然后你可以手动创建table.
三:从django_migrations
中删除条目
我假设你已经删除了所有的迁移文件。所以这部分涵盖了整个项目。但是@DenizKaplan 解释了更好的方法。
如果您没有使用git,或者没有办法恢复这些文件,那么您可以按照以下步骤操作:
- 备份你的数据库
- 删除
djang_migrations
table 中的所有条目
- 运行
./manage.py makemigrations
生成迁移文件 - 运行
./manage.py migrate <your lost app>
迁移您的应用程序(您在数据库中丢失了)。 - 运行
./manage.py migrate --fake
伪造其余应用程序。
您需要检查一些步骤。如果在 makemigrations
操作后输出为空,您可能需要检查 django_migrations
table 以删除与您正在使用的应用程序相关的行。如果一开始这没有帮助,您需要检查 INSTALLED_APPS,也许您可能不小心删除了应用程序。如果所有这些都不起作用,请提供有关错误的一些详细信息。