不过我需要有一些配置文件是不同的,具体取决于我是在本地设置还是部署在Heroku上.再次,由于Heroku使用的部署方法,我无法使用.gitignore和一个模板(正如我已经看到的建议多次,并已在其他项目中使用).
我需要的是git以某种方式跟踪文件上的更改,但是有选择地告诉git在从特定的repo中拉出时不要覆盖某些文件 – 基本上只是单向进行某些更改.
这可以做吗我会感谢任何建议!
解决方法
这是我们使用的方法. (我们使用它的同样的事情…我们有多个克隆的同样的应用程序在Heroku,但我们只需要一个源在github,在我们的开发本地目录,我们做PUSH到ORIGIN(github),然后当我们有它是我们喜欢的方式,我们CD到prod本地目录,它进入SAME github存储库,我们只从GITHUB从该目录中拔出,从不推送(例如,所有推送到github来自我们的dev目录,prod目录只是其他heroku应用程序的分段区域.)
通过将不同的配置设置在不同的HEROKU站点上(如下所述),EXACT SAME CODE在两个英雄网站上工作.
所以我们的工作流程是:(关键是BOTH目录指向SAME github repo)
cd myDEVdir *....develop away....* git add . git commit -am "another day,another push" git push origin *(to our SINGLE github repo)* git push heroku *(test it out on heroku #1)* cd ../myPRODdir git pull *(grabs SAME code as used on other site *) git push heroku *(now the SAME code runs on Heroku #2)*
而已!
现在,您将如何将您的站点特定的配置文件保存在英雄网站上:
http://docs.heroku.com/config-vars
在您的本地命令行上,对于两个本地目录的每个目录,请执行以下操作:
$heroku config:add FIRST_CONFIGVAR=fooheroku1 Adding config vars: FIRST_CONFIGVAR => fooheroku1 $heroku config:add SECOND_CONFIGVAR=barheroku1 Adding config vars: SECOND_CONFIGVAR => barheroku1
查看你定义的那些:
$heroku config FIRST_CONFIGVAR => fooheroku1 SECOND_CONFIGVAR => barheroku1
然后cd到您的其他目录myPRODdir并做同样的事情,只设置相同的远程英雄变量fooheroku2和barheroku2.
那么在你的rails应用程序你简单的参考他们像这样:
a = ENV['FIRST_CONFIGVAR']
一个应用程序将读取“fooheroku1”,另一个应用程序将读取“fooheroku2”
最后,在您的LOCAL目录myDEVdir中,您以DEV模式运行,将相同的config命令放在config / environment / development.rb文件中,您的“dev”版本的config vars将被设置为任何应该的:
ENV['FIRST_CONFIGVAR'] = "foodev" ENV['SECOND_CONFIGVAR'] = "bardev"
容易,优雅.谢谢Heroku!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。