我真的很想知道如何重置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 makemigrations
和python manage.py migrate
重建数据库了。谢谢你的帮助。
3条答案
按热度按时间zlwx9yxi1#
简单地删除SQlite数据库文件就可以了。如果你遇到“资源忙碌或被锁定”的情况,只需将整个项目目录复制到其他地方,然后尝试删除它。想想看,你会在部署时将数据库文件一起上传到heroku吗?我知道这是不,SQlite文件不应该包含在git项目中,而应该包含在.gitignore文件中。如果找不到数据库文件,Django会自动生成一个新的数据库(重置)。
093gszye2#
只需运行命令
然后回答下面的问题“是”
b1zrtrql3#
在克隆一个beanstalk环境后,我遇到了您的情况,RDS加载了一个看起来与我的迁移不兼容的坏快照。所有相同的命令都不起作用。最后对我起作用的是:
然后,我能够像正常一样迁移,错误消失了。