ruby-on-rails – 如何配置database.yml以在本地环境和Docker中
假设我的一些Rails同事更愿意在他们自己的本地开发环境中开发应用程序,他们自己设置以满足他们的需求,我的一些同事更愿意开发从Docker容器内运行的应用程序附带预装的所有必要工具.
现在有config / database.yml,它目前看起来像是匹配所有本机人员的设置,并以bin / rails db:setup启动. default: &default adapter: postgresql encoding: unicode pool: 5 development: <<: *default database: myapp_development test: <<: *default database: myapp_test 但是Docker的人确实需要以下内容 – 最重要的是所有不同的主机 – 它将以docker-compose运行web bin / rails db:setup开始.由于主机不同,现在这个database.yml不再适用于本地人. default: &default adapter: postgresql encoding: unicode host: db username: postgres password: pool: 5 development: <<: *default database: myapp_development test: <<: *default database: myapp_test 什么是最方便或更少侵入性的方式同时涵盖两个用例?我可以动态获取主机值吗?怎么样?从env变量?来自不同的database.yml?那么如何告诉Rails取而代之呢? 注意:Docker设置基本上遵循https://docs.docker.com/compose/rails 解决方法
使用ENV vars Luke.
ENV [‘DATABASE_URL’]与database.yml中的设置合并,优先于file中的值. 为了避免开发人员战争,database.yml应该只包含最少的设置,例如适配器,编码和DB的默认名称: default: &default adapter: postgresql encoding: unicode development: <<: *default database: myapp_development test: <<: *default database: myapp_test 其他任何东西,如主机,密码应由ENV [‘DATABASE_URL’]设置,因为这是本地配置 – 而不是应用程序配置.出于安全原因,这也是优选的,因为它消除了密码被源代码泄露的风险. 看到: > http://guides.rubyonrails.org/configuring.html#configuring-a-database (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |