django.db.utils.DatabaseError: database disk image is malformed


django 创建 superuser 错误

在准备使用 django 的 manage.py 创建一个超级用户的时候遇到了下面的错误:

Traceback (most recent call last):
  File "/home/wx/project/env/lib/python3.6/site-packages/django/db/backends/utils.py", line 83, in _execute
    return self.cursor.execute(sql)
  File "/home/wx/project/env/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py", line 294, in execute
    return Database.Cursor.execute(self, query)
sqlite3.DatabaseError: database disk image is malformed

分析原因应该是 sqlite 数据库的错误,因此尝试重新备份下数据库最终解决了这个 bug。

解决方法

1.下载安装 sqlite3(已安装跳过)

$ sudo apt-get install sqlite3

2.备份数据库

$ sqlite3 db.sqlite3 ".dump" > dump

mv db.sqlite3 db.sqlite3.backup

cat dump | sqlite3 db.sqlite3

这样数据库的错误便可以解决了。之后便可以正确的创建一个超级用户了。