django项目部署到实时(临时)站点有多痛苦?

时间:2010-03-12 16:27:08

标签: django web-deployment

我的一个小型django项目变得非常快,当然我正在本地开发。 但是,由于我之前从未使用过django,我不知道上传它并在生产服务器上测试它意味着什么。而且我很好奇,因为我非常渴望现场测试早期版本。

我知道有这份文件,我认为它真的很有帮助:http://djangobook.com/en/2.0/chapter12/

但是,在部署之前,期间和之后我是否应该考虑任何细节? 有什么建议或最佳实践吗?

感谢。

4 个答案:

答案 0 :(得分:6)

尽可能使您的开发/测试环境与您的部署环境相匹配。这意味着使用例如PostgreSQL和mod_wsgi而不是SQLite和内置服务器。这个软件是免费的,所以没有理由你无法掌握它。

答案 1 :(得分:2)

如果您在域的子目录中提供站点,则可能会遇到问题:避免手动编写绝对URL,而是使用url标记。

如果您依赖数据库中的初始数据,请使用fixtures

如果您的服务器将用于多个网站,请考虑使用Virtualenv打包您的网站,以避免与其他网站的依赖性冲突。

您还应该在开发和生产服务器中使用相同的数据库系统,以避免出现意外。

答案 2 :(得分:2)

使用类似south之类的内容来消除数据库迁移难题,如果您有一个相当复杂的项目(或有时间学习这些工具),可以考虑使用buildoutfabric进行部署),因为它们将允许轻松重现的脚本部署。

答案 3 :(得分:1)

我认为很多因数据库模型的变化而异。 Django可以使用syncdb添加新列,或生成一个脚本来执行此操作,但它不会删除列,我认为它不会从数据库中删除外键约束,即使它们不再适用。

因此,数据库迁移可能最好是编写脚本,并在生产数据库的副本或一些与生产数据非常相似的数据集上进行测试(当然是相同的模式)。