Django admin和SQLite:数据库磁盘映像损坏

8
我开发了一个基于Django的网页,把所有内容都存储在一个数据库里,假设叫做sqlite.db。
Django可以从数据库正确读取所有信息并正确显示网页。
然而,在生产服务器上使用管理界面时(与Eclipse的pydev插件一起提供的开发服务器工作正常),无法访问数据库。如果只是复制数据库文件,它会告诉我无法读取,而且我甚至无法获得django管理应用程序的登录屏幕。如果我按照许多论坛中建议的更改文件和目录权限,我会得到管理员登录屏幕,但是Django会返回“DatabaseError at /admin/ - database disk image is malformed”错误。
我使用的是Django 1.6.5和sqlite3 3.7.13。
有什么想法吗?
编辑:我发现只有Django管理界面的主页面受到影响。我可以毫无问题地导航到应用程序设置。

我发现在目标系统(树莓派debian-weezy)上运行的django管理服务器无法正常工作(数据库格式错误)。但在Windows上可以正常工作。 - EvilSmurf
1
这可能会有所帮助:https://dev59.com/4m435IYBdhLWcg3wrSLN - joel goldstick
谢谢Joel的提示,但是我的开发环境中数据库运行良好,并且我确保不会复制正在使用的数据库。我将尝试在目标系统上创建一个新的数据库,然后只需复制信息。 - EvilSmurf
仔细阅读后,我找到了解决方案,感谢 Joel。http://askubuntu.com/questions/30185/banshee-encountered-a-fatal-error-sqlite-error-11-database-disk-image-is-malfo 奏效了!再次感谢! - EvilSmurf
2个回答

9

只需要三个步骤。

  1. 删除 db.sqlite3 和所有迁移文件
  2. 运行 python manage.py makemigrations
  3. 运行 python manage.py migrate

这真的很有帮助。 - MD SHAYON
6
如果你不介意删除你的数据库,那就没问题了。但我们并不总是有这样的便利条件。 - Chris Conlan


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接