【发布时间】:2017-05-25 03:09:57
【问题描述】:
我有一个带有 Dotenv gem 的 Rails 4 应用程序,可以从文件 .env 中读取变量。
为了让我的 rails 应用程序拥有除“root”以外的 mysql 用户,我设置了一些变量,例如:
MYSQL_ROOT_USER='rootuser'
MYSQL_ROOT_PASSWORD='rootpassword'
APP_DATABASE_USER='mydbuser'
APP_DATABASE_PASSWORD='userpassword'
我还创建了一个bash脚本来在scripts/database_setup.bash下创建mysql用户
#!/bin/bash
source ../.env
# creates the user
mysql -u${MYSQL_ROOT_USER} --password="${MYSQL_ROOT_PASSWORD}" -e "CREATE USER '${APP_DATABASE_USER}'@'localhost' IDENTIFIED BY '${APP_DATABASE_PASSWORD}';"
# grants permission
mysql -u${MYSQL_ROOT_USER} --password="${MYSQL_ROOT_PASSWORD}" -e "GRANT ALL PRIVILEGES ON \`myapp\_%\`.* TO '${APP_DATABASE_USER}'@'localhost';"
在服务器端,Capistrano 部署到 `/home/myuser/apps/myapp/
我有三个问题:
- 放置服务器端
.env文件的最佳位置在哪里?现在我把它放在/home/myuser/apps/myapp/目录中。 - 如何告诉 Capistrano 将其复制到 Rails 根目录?
- 如何告诉 Capistrano 在运行迁移之前执行我的 bash 脚本?
【问题讨论】: