python - 如何使用相同的数据库后端运行在同一服务器上运行多个实例的 Django 1.6 项目?

标签 python django deployment paas

我有一个 Django 1.6 项目(存储在 Bitbucket Git 存储库中),希望将其托管在 VPS 上。

这个想法是,当有人购买我编写的软件的副本时,我可以输入一些简单的命令,这些命令将从 Git 获取指定的代码副本,使用自己的子域创建项目的新实例(例如 .example.com),并创建一个新的 Postgres 数据库(在同一服务器上)。

我希望能够轻松创建和删除这些“实例”。

执行此操作的最佳方法是什么? 我研究过使用 Supervisor/Gnunicorn/Nginx/Fabric 等的某种组合来编写脚本。其他选项可能更严重,例如使用 Docker 或 Vagrant。我还研究了各种 PaaS 选项。

提前致谢。

(编辑:我查看了以下服务/事物:Dokku(由于数据限制,无法使用 Heroku)、Vagrant(包括 Puppet)、Docker、Fabfile、Deis、Cherokee、弗林(开发中))

最佳答案

如果我这样做(并且我对继承的 PHP 应用程序做了类似的事情),我将拥有一个允许我配置新实例的 Fabric 命令。

这可以分为必要的步骤( checkout 代码、创建数据库、同步数据库/迁移、创建 DNS 条目、启动 Web 服务器)。

我可能会做一些理智的事情,比如使用 DNS 条目作为数据库名称:或者至少使用可逆函数来做到这一点。

然后您可以将它们串在一起以轻松创建新实例。

您还需要一种方法来告诉新创建的实例需要使用哪个数据库和域名。您可以让配置脚本将一些数据写入 check out 存储库中的文件,然后 Django 在初始化阶段使用该文件。

关于python - 如何使用相同的数据库后端运行在同一服务器上运行多个实例的 Django 1.6 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21225368/

相关文章:

python - 来自 manage.py runserver 的堆栈跟踪没有出现

java - 在 Tom Cat 上部署 Java 项目

python - gspread update_cell 非常慢

python - 在递归中分配局部变量

python - 我的 modelformset_factory 没有保存图像(我使用了基于类的 View ),而是在使用管理端时保存它

ruby-on-rails - 部署后 Assets 不显示-heroku-rails 4

deployment - 谁能告诉我这个 .INF 文件有什么问题?

python - 为什么我使用 NDB 的 `populate()` 不接受 `id` 或 `parent` ,而只接受 `key` ?

python - 将带有正则表达式的文本解析为结果为空字符串的列表

python - python(django)中的复杂 boolean 表达式