Ale*_*lex 8 django heroku django-sites
我为20个不同的国家/地区创建了一个包含20个站点(每个站点一个不同的域)的Django项目.这些网站共享一切:代码库,数据库,网址,模板等.
他们唯一不共享的是我在每个站点设置文件中设置的小型自定义(徽标,CSS主题的背景颜色,语言代码等)(每个站点都有一个设置文件,以及所有这些文件)使用常用内容导入全局设置文件).现在,为了在开发模式下运行网站,我将做:
django-admin.py runserver 8000 --settings=config.site_settings.site1
django-admin.py runserver 8001 --settings=config.site_settings.site2
...
django-admin.py runserver 8020 --settings=config.site_settings.site20
Run Code Online (Sandbox Code Playgroud)
我有一些问题:
谢谢!
所以,我最近做了类似的事情,发现下面的策略是最好的选择.我将假设你现在熟悉git分支,以及Heroku遥控器.如果不是,您应该首先阅读:https://devcenter.heroku.com/articles/git#multiple-remotes-and-environments
我正在采取的主要策略是使用单个代码库(单个Git仓库):
master包含所有共享代码分支:模板,视图的URL.site分支,基于master,包含所有特定于站点的自定义:css,图像,设置文件(如果它们非常不同).这种方式的工作原理如下:
首先,确保你在master分支机构.
其次,为您的某个域创建一个新的git分支,例如:git checkout -b somedomain.com.
第三,自定义您的somedomain.com分支,使其看起来像您想要的那样.
接下来,somedomain.com通过运行实时部署到Heroku heroku create somedomain.com --remote somedomain.com.
现在,将您的somedomain.com分支代码推送到新的Heroku应用程序:git push somedomain.com somedomain.com:master.这将在Heroku上部署您的代码.
现在您已经somedomain.com使用自己的Heroku应用程序部署了分支,您可以通过添加--remote somedomain.com到正常的Heroku命令来执行所有正常的Heroku操作,例如:
heroku pg:info --remote somedomain.comheroku addons:add memcache:5mb --remote somedomain.com所以,现在你基本上有两个分支:master分支和somedomain.com分支.
回到您的master分支机构,为您的下一个域创建另一个新分支:git checkout master; git checkout -b anotherdomain.com.然后根据自己的喜好(css,特定于站点的东西)进行自定义,并按照我们上面所做的相同方式进行部署.
现在我相信你现在可以看到它的发展方向.我们的每个自定义都有一个git分支domains,每个域都有自己的Heroku应用程序.好处(显然)是每个项目自定义都基于master分支,这意味着您可以轻松地一次更新所有站点.
假设您更新了master分支中的一个视图- 如何将其一次性部署到所有自定义网站?容易!
赶紧跑:
git checkout somedomain.comgit merge mastergit push somedomain.com somedomain.com:master #部署更改并重复您的每个域名.在我的环境中,我编写了一个执行此操作的脚本,但如果您愿意,可以手动完成.
无论如何,希望这会有所帮助.
| 归档时间: |
|
| 查看次数: |
1583 次 |
| 最近记录: |