【问题标题】:deleted django_admin_log and now i can not use the django admin删除了 django_admin_log,现在我不能使用 django admin
【发布时间】:2018-08-31 04:50:52
【问题描述】:

Django 版本:2.0.3 异常类型:ProgrammingError 异常值:
关系“django_admin_log”不存在 第 1 行:..."."app_label", "django_content_type"."model" FROM "django_ad...


我试试

 './manage.py sqlmigrate admin 0001' or './manage.py sqlmigrate admin 0001'

我得到: db1=> manage.py sqlmigrate admin 0001 db1->\q (renew_project) renew_project@renew:~/renew$ python manage.py sqlmigrate admin 0001

开始;

-- 创建模型LogEntry

​​>
CREATE TABLE "django_admin_log" ("id" serial NOT NULL PRIMARY KEY, "action_time" timestamp with time              zone NOT NULL, "object_id" text NULL, "object_repr" varchar(200) NOT NULL, "action_flag" smallint NOT              NULL CHECK ("action_flag" >= 0), "change_message" text NOT NULL, "content_type_id" integer NULL, "us             er_id" integer NOT NULL);
ALTER TABLE "django_admin_log" ADD CONSTRAINT "django_admin_log_content_type_id_c4bce8eb_fk_django_co             " FOREIGN KEY ("content_type_id") REFERENCES "django_content_type" ("id") DEFERRABLE INITIALLY DEFERR             ED;
ALTER TABLE "django_admin_log" ADD CONSTRAINT "django_admin_log_user_id_c564eba6_fk_auth_user_id" FOR             EIGN KEY ("user_id") REFERENCES "auth_user" ("id") DEFERRABLE INITIALLY DEFERRED;
CREATE INDEX "django_admin_log_content_type_id_c4bce8eb" ON "django_admin_log" ("content_type_id");
CREATE INDEX "django_admin_log_user_id_c564eba6" ON "django_admin_log" ("user_id");
COMMIT;

但是没有 django_admin_table


我有 --- INSTALLED_APPS = [ 'django.contrib.admin',


我使用 Postgresql


我尝试了所有迁移 - 以不同的方式 - 没有结果

请分享您的想法 - 如何处理它? 谢谢

【问题讨论】:

  • sqlmigrate 只是打印出命令,并不运行它们。
  • 我做了 python manage.py migrate admin 0001。所以 - 有什么建议吗?
  • python manage.py migrate admin 0001 只有在之前没有为管理应用程序运行过迁移的情况下才能工作。删除django_admin_log 表是一件非常奇怪的事情。让您的数据库和迁移重新同步可能非常棘手 - 如果您的数据库中没有任何重要数据,最简单的解决方法是删除数据库并重新运行所有迁移。

标签: python django logging admin


【解决方案1】:

也许最好的办法是创建一个全新的项目/数据库并在那里进行迁移。然后你将有一个空的(或大部分是空的)django_admin_log 表。然后,您可以对正确的“create table”语句进行反向工程,并在您的原始数据库中自己创建它。

【讨论】:

    猜你喜欢
    • 2017-04-26
    • 2017-10-14
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 2012-09-10
    • 2014-10-23
    相关资源
    最近更新 更多