如何重置Django数据库?

atmip9wb  于 2022-12-14  发布在  Go
关注(0)|答案(3)|浏览(264)

我真的很想知道如何重置Django数据库。具体来说,我不小心用这个命令删除了一个表,

$ python manage.py dbshell
$ DROP TABLE qaapp_question;

一切都一团糟。
我跟踪了一个stackoverflow的帖子,刚刚删除了这个表,哈哈,完全搞砸了。syncdb的东西显然是不赞成的,所以不能使用它。
我尝试了所有的方法,我谷歌和发现,如下:

$ python manage.py migrate qaapp zero 
django.db.utils.OperationalError: no such table: qaapp_question

不管用。

$ manage.py migrate --fake <appname> zero
$ rm -rf migrations # I deleted the app migrations folder manually
$ manage.py makemigrations <appname>
$ manage.py migrate --fake <appname>

不管用。

$ python manage.py flush

不管用。

$ python manage.py reset_db 
Reset successful.

不管用。
手动尝试删除sqlite数据库文件-〉资源忙碌或锁定
不管用。
我想恢复被删除的表,但是我不在乎了,只要告诉我如何删除,初始化数据库,然后就可以用python manage.py makemigrationspython manage.py migrate重建数据库了。谢谢你的帮助。

zlwx9yxi

zlwx9yxi1#

简单地删除SQlite数据库文件就可以了。如果你遇到“资源忙碌或被锁定”的情况,只需将整个项目目录复制到其他地方,然后尝试删除它。想想看,你会在部署时将数据库文件一起上传到heroku吗?我知道这是不,SQlite文件不应该包含在git项目中,而应该包含在.gitignore文件中。如果找不到数据库文件,Django会自动生成一个新的数据库(重置)。

093gszye

093gszye2#

只需运行命令

python manage.py flush

然后回答下面的问题“是”

This will IRREVERSIBLY DESTROY all data currently in the "qaapp" database,
and return each table to an empty state.
Are you sure you want to do this?

    Type 'yes' to continue, or 'no' to cancel: yes
b1zrtrql

b1zrtrql3#

在克隆一个beanstalk环境后,我遇到了您的情况,RDS加载了一个看起来与我的迁移不兼容的坏快照。所有相同的命令都不起作用。最后对我起作用的是:

python manage.py migrate app_name zero

然后,我能够像正常一样迁移,错误消失了。

相关问题