Django迁移fakeinitial reports关系已存在

2024-10-04 05:23:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将现有数据库导入到我的Django项目中,因此运行python manage.py migrate --fake-initial,但出现以下错误:

operations to perform:
  Apply all migrations: ExcursionsManagerApp, GeneralApp, InvoicesManagerApp, OperationsManagerApp, PaymentsManagerApp, RatesMan
agerApp, ReportsManagerApp, ReservationsManagerApp, UsersManagerApp, admin, auth, authtoken, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... FAKED
  Applying auth.0001_initial... FAKED
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying GeneralApp.0001_initial...Traceback (most recent call last):
  File "/Users/hugovillalobos/Documents/Code/IntellibookWebProject/IntellibookWebVenv/lib/python3.6/site-packages/django/db/back
ends/utils.py", line 83, in _execute
    return self.cursor.execute(sql)

psycopg2.ProgrammingError: relation "GeneralApp_airport" already exists

{/cd2假设所有的表都存在,这就是为什么数据库中的表都是强的。你知道吗

为什么migrate试图创建表GeneralApp__airport而不是伪造它?你知道吗


Tags: 项目djangopy数据库executemanagemigrations错误
1条回答
网友
1楼 · 发布于 2024-10-04 05:23:24

从现有数据库进行迁移可以遵循的步骤。首先从数据库中清空django迁移表。你知道吗

delete from django_migrations
  1. 从应用程序的迁移文件夹中删除迁移
rm -rf <app>/migrations/
  1. 重置内置应用的迁移(如admin)
python manage.py migrate  fake
  1. 为每个应用程序创建初始迁移
python manage.py makemigrations <app>
  1. 最后一步是创建假初始迁移
python manage.py migrate  fake-initial

相关问题 更多 >