我有一个名为Attendance的应用程序,它包含在postgresql db中应用的以下迁移。
attendance
[X] 0001_initial
[X] 0002_delete_leave
[X] 0003_alter_holiday_options_alter_shift_options
[X] 0004_delete_holiday_alter_shift_holidays
[X] 0005_delete_shift
[X] 0006_initial
[X] 0007_alter_leave_options
[X] 0008_alter_leave_comment_alter_leave_is_regularized
[X] 0009_attendance
[X] 0010_alter_attendance_options_attendance_created_at_and_more
[X] 0011_attendance_status
[X] 0012_attendance_is_regularized
[X] 0013_alter_attendance_is_regularized
[X] 0014_remove_attendance_date_attendance_start_date_and_more
[X] 0015_attendance_end_date
[X] 0016_alter_attendance_end_date
[X] 0017_alter_attendance_end_date_and_more
[X] 0018_leavetype_remove_leave_half_day_and_more
[X] 0019_leave_leave_type
字符串
当我运行python manage.py migrate
时,无论有没有app标签,它都不会在db中创建表。
我还没有设置managed=False
,并试图从django_migrations
表中删除所有迁移,但没有运气。
还有一点我忘了补充,我使用的是django-tenants
更新
为了调试这个问题,我删除了本地数据库并保留了迁移。在迁移之前,我使用**--plan
**标志运行migrate命令
python manage.py migrate --plan
型
上面的命令给了我这个错误
[standard:public] Change Meta options on todo
[standard:public] todo_task.0004_todo_created_at_todo_updated_at
[standard:public] Add field created_at to todo
[standard:public] Add field updated_at to todo
Traceback (most recent call last):
File "env\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
return self.cursor.execute(sql, params)
psycopg2.errors.UndefinedTable: relation "tenant_tenant" does not exist
LINE 1: SELECT "tenant_tenant"."schema_name" FROM "tenant_tenant" WH...
...
型
2条答案
按热度按时间ct2axkht1#
希望有帮助~
您可以使用此命令重置为上次已知的迁移
字符串
举例来说:第一个月
然后运行migrate命令:
型
如果这不起作用,您可以使用--fake标志来操作当前迁移状态。
型
这适用于经验更丰富的用户。请在这里查看更多https://docs.djangoproject.com/en/dev/ref/django-admin/#migrate
zvms9eto2#
根据文档,我发现了问题。所有我们希望在公共模式中拥有表的应用程序,我们必须将它们添加到**
SHARED_APPS
。所以我在
SHARED_APPS
**中添加了attendance
和task
应用。字符串
在此之后,我删除了本地数据库,创建了一个新的,并运行migrate命令。
型
成功了!
感谢所有试图帮助我的人: