我正在尝试重置我的django数据库,因此我运行manage.py sqlflush
并在MySQL中运行该输出。
我然后运行manage.py flush
。我认为这应该清除一切。
我然后运行manage.py makemigrations
,它似乎识别了所有需要构建的表格,但是当我运行manage.py migrate
时,它表示不需要做什么,所以我现在没有任何表格我运行我的应用程序时的表格。
答案 0 :(得分:2)
根据documentation的sqlflush
命令:
打印将为flush命令执行的SQL语句。
例如,在新创建的项目上运行sqlflush
命令会输出:
DELETE FROM "auth_user_user_permissions";
DELETE FROM "auth_group_permissions";
DELETE FROM "auth_permission";
DELETE FROM "auth_user_groups";
DELETE FROM "auth_user";
DELETE FROM "django_admin_log";
DELETE FROM "django_content_type";
DELETE FROM "auth_group";
DELETE FROM "django_session";
但这实际上并没有删除数据库表。要删除表,您需要运行命令:
python manage.py dbshell
然后,您需要在该shell中运行sqlflush
的输出。
答案 1 :(得分:1)
您应该删除应用文件夹中的migrations
文件夹。您还应该删除数据库文件(如果有的话)(对于SQLite,根项目文件夹中有一个名为db.sqlite3
的文件,但我不确定这对MySQL是如何工作的)。然后运行makemigrations
和migrate
。