【问题标题】:I accidentally, deleted table of a model in db.sqlite (manually). How can I recreate it?我不小心删除了 db.sqlite 中的模型表(手动)。我怎样才能重新创建它?
【发布时间】:2021-07-20 18:19:48
【问题描述】:

我不小心删除了 db.sqlite 中的模型表如何重新创建它? 当我运行命令“python manage.py makemigrations”时它可以工作,但是当我运行“python manage.py migrate”时它说“没有要应用的迁移”

【问题讨论】:

    标签: python python-3.x django django-models django-migrations


    【解决方案1】:

    找出最初创建该表的应用程序和迁移。例如,如果创建表的模型在初始迁移 #0001 中名为 users 的应用程序中,您可以运行以下命令转储创建表的 SQL:

    $ python manage.py sqlmigrate users 0001
    BEGIN;
    --
    -- Create model User
    --
    CREATE TABLE "users_user" ("id" serial NOT NULL PRIMARY KEY, "password" varchar(128) NOT NULL, "last_login" timestamp with time zone NOT NULL, "is_superuser" boolean NOT NULL, "username" varchar(30) NOT NULL UNIQUE, "first_name" varchar(30) NOT NULL, "last_name" varchar(30) NOT NULL, "email" varchar(75) NOT NULL, "is_staff" boolean NOT NULL, "is_active" boolean NOT NULL, "date_joined" timestamp with time zone NOT NULL, "subscriber_code" varchar(255) NOT NULL);
    CREATE INDEX "users_user_username_06e46fe6_like" ON "users_user" ("username" varchar_pattern_ops);
    COMMIT;
    

    之后,您可以在 SQLite 中打开一个数据库 shell,并通过复制和粘贴的方式运行 SQL:

    python manage.py dbshell
    

    祝您恢复顺利!

    【讨论】:

      【解决方案2】:

      删除迁移文件并重新运行python manage.py makemigrations

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-05
        • 1970-01-01
        • 1970-01-01
        • 2017-04-17
        • 1970-01-01
        相关资源
        最近更新 更多