如何在django中重新启动数据库。 Sqlflush和sqlclear似乎无法正常工作

时间:2016-04-17 02:24:34

标签: python django

除了用户信息之外,我还有两个文件中的6个模型(收益和请愿)。有一些相互依赖。当我更改模型时,出现了一些错误。所以我想重新开始并想放弃所有桌子。

我运行 sqlflush Sqlclear ,结果如下。

Sqlflush 结果

BEGIN;
DELETE FROM "django_admin_log";
DELETE FROM "auth_permission";
DELETE FROM "auth_group";
DELETE FROM "auth_group_permissions";
DELETE FROM "django_session";
DELETE FROM "auth_user_groups";
DELETE FROM "auth_user_user_permissions";
DELETE FROM "benef_beneficiary_information";
DELETE FROM "petition_employer";
DELETE FROM "petition_job";
DELETE FROM "nashvegas_migration";
DELETE FROM "benef_beneficiary";
DELETE FROM "auth_user";
DELETE FROM "benef_beneficiaryname";
DELETE FROM "petition_petition";
DELETE FROM "django_content_type";

COMMIT;
Finished "C:\pyProjs\immiFile\manage.py sqlflush" execution.

Sqlclear benef result is 

BEGIN;
DROP TABLE "benef_beneficiary_information";
DROP TABLE "benef_beneficiary";
DROP TABLE "benef_beneficiaryname";

COMMIT;
Finished "C:\pyProjs\immiFile\manage.py sqlclear benef" execution.

sqlclear petition result is 
BEGIN;
DROP TABLE "petition_petition";
DROP TABLE "petition_job";
DROP TABLE "petition_employer";

COMMIT;
Finished "C:\pyProjs\immiFile\manage.py sqlclear petition" execution.

但是当我运行项目并转到管理员时,我仍然看到旧表,当我点击它们时,与字段相关的错误来自,这最初是由模型更改引起的。数据不相关

OperationalError at /admin/benef/beneficiary/
no such column: benef_beneficiary.last_edited_by_id

我想重新开始。解决方案是什么?

我正在使用Django 1.8和Python 2.7

2 个答案:

答案 0 :(得分:0)

来自documentation

  

sqlflush:打印将为flush命令执行的SQL语句。

它只打印 执行的语句。它没有触及数据库(同样适用于sqlclear)。您需要改为使用flush

另请注意flush上的文档:

  

从数据库中删除所有数据并重新执行任何数据   后同步处理程序。迁移的表格   申请未被清除。

     

如果您希望从空数据库开始并重新运行所有数据库   迁移时,您应该删除并重新创建数据库,然后运行   而是迁移。

答案 1 :(得分:0)

  

我想重新开始。解决方案是什么?

确定的火灾方式,将删除所有内容(包括您的数据):

  1. 关闭应用程序(如果您使用runserver,请确保其已停止)
  2. 从数据库服务器中删除数据库。如果您使用的是sqlite,只需删除db文件。
  3. 删除在您的应用下创建的所有 migration 目录。
  4. 输入./manage.py makemigrations
  5. 输入./manage.py migrate