介绍
在通过Rails联合开发进行建筑环境开发时,每个开发环境的DB密码等设置都不同。如果您直接在database.yml等中输入个人设置,则该设置仅在某些环境中有效。另外,我也不想在GitHub上发布密码之类的信息。
因此,通过引入gem(dotenv-rails)可以管理每个开发环境不同的信息(例如密码)作为环境变量,它被设置为与每个开发环境相对应,并且不会在GitHub上发布。 。
环境
- macOS大苏尔
- rails6.1.1
- Ruby 2.7.2
- 的MySQL 5.7.31
安装dotenv-rails gem
将以下内容写入
Gemfile。
ruby文件
1 | gem 'dotenv-rails' |
执行以下命令来安装gem。
1 | $ bundle install |
创建一个.env文件并设置环境变量
在要设置
环境变量的应用程序的根目录中创建一个
在根目录中执行以下命令。
1 | $ touch .env |
在创建的
例如,对于数据库用户名和密码,请进行如下设置。
.env
1 2 | DB_USERNAME = '********' # 使用したいユーザーネームを記述 DB_PASSWORD = '**************' # 使用したいパスワードを記述 |
调用环境变量
要调用在
在这种情况下,我们正在调用用户名和密码。
数据库
1 2 3 4 5 6 7 8 9 10 11 | ... default: &default adapter: mysql2 encoding: utf8mb4 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: <%= ENV['DB_USERNAME'] %> # 環境変数で呼び出し password: <%= ENV['DB_PASSWORD'] %> # 環境変数で呼び出し socket: /tmp/mysql.sock ... |
现在您可以通过在
.gitignore设置
如果按原样推送,
.gitignore
1 | /.env |
现在
创建.env.sample
创建一个
我认为每个项目的设置项都会有所不同,但是我将仅描述即使泄漏的OK虚拟数据和设置项的键。
例如,对于DB用户名和密码,编写如下。
.env.sample
1 2 | DB_USERNAME = 'mysqlのユーザーネームを記入’ DB_PASSWORD = '設定したパスワードを記入' |
现在,当您从GitHub克隆项目时,复制此
如果您已推送.env文件
如果将
在这种情况下,执行以下命令删除缓存。
1 | $ git rm -r --cached . |
这不再由Git管理。
概括
这是编程初学者在Rails联合开发中负责构建第一个环境开发项目时所遇到的问题和教训的摘要。
如果内容有任何错误,请您提出宝贵意见,我们将不胜感激。