Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django项目部署到活动(暂存)站点有多痛苦?_Django_Web Deployment - Fatal编程技术网

django项目部署到活动(暂存)站点有多痛苦?

django项目部署到活动(暂存)站点有多痛苦?,django,web-deployment,Django,Web Deployment,我的一个小django项目进展很快,当然,我正在本地开发。 但是,由于我以前从未使用过django,我不知道上传它并在生产服务器上测试它意味着什么。我很好奇,因为我非常渴望在现场测试早期版本 我知道有这样一份文件,我认为它会非常有用: 但是,在部署之前、期间和之后,我应该考虑哪些细节? 有什么建议或最佳实践吗 谢谢。让您的开发/测试环境尽可能与您的部署环境相匹配。这意味着使用PostgreSQL和mod_wsgi代替SQLite和内置服务器。这个软件是免费的,所以你没有理由不使用它。我认为很大程

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

我知道有这样一份文件,我认为它会非常有用:

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


谢谢。

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

我认为很大程度上取决于数据库模型的改变。Django可以使用syncdb添加新的列,或者生成一个脚本来执行此操作,但它不会删除列,而且我认为它不会从数据库中删除外键约束,即使它们不再适用


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

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

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

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


你也应该在你的DEV和生产服务器中使用相同的数据库系统来避免意外。

使用一些类似的方法来移除数据库迁移的痛苦,如果你有一个相当复杂的项目(或者有时间去学习这些工具),考虑一些类似的或部署的事情。因为它们将允许轻松复制脚本部署。

该建议适用于任何和所有语言的任何和所有开发/验收环境:)谢谢,这绝对是一个好建议。我在内置服务器和sqlite上运行:D+1-我使用内置服务器+sqlite进行快速原型设计,但我建议使用“real”配置一组匹配的开发+登台/测试+生产环境在mod_wsgi上开发时自动重新加载代码更改的方法:如何使用syncdb添加新列?这是一项新功能吗?我很难只将一个答案标记为正确。。。我希望这是一个维基问题。欢迎更多的回答。谢谢,还有很好的建议。我正在使用url标签。固定设施还不能让它工作。