当前位置:  开发笔记 > 编程语言 > 正文

将django应用程序从dev移动到prod时常见的错误?

如何解决《将django应用程序从dev移动到prod时常见的错误?》经验,为你挑选了1个好方法。

我正在Windows,SQLite和django dev服务器上开发一个django应用程序.我已经将它部署到运行Linux,Apache,FastCgi,MySQL的主机服务器上.

不幸的是,我在prod服务器上返回了一个错误,而dev机器上的一切正常.我已经向我的提供商询问了预生产解决方案,以便能够调试和理解问题.

无论如何,根据你的说法,将django应用程序从dev移动到prod时可能发生的最可能的错误是什么?

最好

更新:我认为预先制定是解决此类问题的最佳方法.但我想建立一个清单,列出在投入生产之前必须完成的工作.感谢我收到的非常有价值的答案,直到现在:)

更新:仅供参考,我已经实现了shanyu建议的preprod服务器和电子邮件通知,我可以看到错误来自我在这个新版本上使用的smart_if模板标签.模板标签的任何技巧?

更新:我想我已经修复了我认为由Filezilla FTP发送引起的pb.我正在使用"替换为更新"选项,我猜这会导致一些意想不到的结果.使用"全部替换"选项可以解决问题.但是,我有机会了解有关部署的更多信息.Thansk为你的答案.



1> John Paulett..:

我通常遇到的问题包括:

    错误配置的产品设置,无论是在我的生产localsettings.py,wsgi/cgi,还是在/ etc/sites-available中的apache站点文件

    数据库差异.我使用South进行迁移,并且当它在sqlite中顺利运行时在PostgreSQL上执行迁移时遇到了一些微妙的问题.

    静态文件托管,因为我作弊并在开发中使用Django服务器

    权限,包括文件系统和数据库中的权限

    很少但可能的网络问题阻止我获取我的依赖关系,无论是在PyPi还是某些第三方网站上

我已经减轻了这些问题的方法:

在生产和开发中使用相同的数据库(在您的情况下,MySQL无处不在)

我发现拥有一个"测试"环境非常有用,它可以以各种可能的方式模仿生产(它可以在低端硬件上,甚至可以在同一台机器上).这样,如果在这种"类似生产"的环境中存在任何问题,我可以在不使我的生产服务器脱机的情况下解决它们.

编写可重复部署的所有内容.我使用fabric,但是zc.buildout或Paver也可以使用.这些工具有助于在部署时减少拼写错误,并缩短部署应用程序的时间.

使用版本控制(mercurial,git,subversion)和模式迁移工具(如South),因此如果在部署到生产时出现问题,您可以撤消更改并允许生产在旧代码上运行使用旧的数据库架构.

我还没有设置" egg proxy ",但我正在考虑它,以避免在下载依赖项时出现问题.

我发现pip的冻结依赖是有用的,以防自从我最初下载它以来对库发生了新的,不兼容的更改

使用像Windmill或Selenium这样的Web测试框架在我的"测试"环境中测试我的应用程序,这样我就可以非常快速地获得大量的系统测试覆盖率.

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有