我如何才能发现我的 ROR 应用程序正在获取其 ENV 变量
How can I found out were my ROR app is getting its ENV variables
我接管了一个 ROR 应用程序,我在 local_env.yml
和 .env 中更改了 ENV vars 以指向 MongoDB Atlas 上的新 MongoDB 服务器并远离 MLab.However,该应用程序仍在 MLab 上访问数据库。
所以我也做了以下操作:
- 我查了下电脑,
bash_profile
里面有相同的ENV,我已经改了。
- 然后我做了一个来源
~/.bash_profile
- 我重新启动了 Puma,但该应用程序仍在使用通过 ENV[MONGO].
访问的 Mlab DB
有没有办法找出应用程序从何处提取 ENV 变量?
ruby 中没有具体说明环境变量的设置位置,因为它们是 ENVIRONMENT VARIABLES 所以首先要了解这意味着什么。
你可以尝试 grep 递归
grep -rnw 'base/path/to/search/' -e 'MONGO'
根据您使用的shell,可能还有其他方法可以找到它们。但是,如果它们是从 shell 未加载的文件中加载的,而是由您的 ruby 应用程序加载的,即 yaml 文件,这些可能对您没有帮助。
有关详细信息,请参阅 this answer
我接管了一个 ROR 应用程序,我在 local_env.yml
和 .env 中更改了 ENV vars 以指向 MongoDB Atlas 上的新 MongoDB 服务器并远离 MLab.However,该应用程序仍在 MLab 上访问数据库。
所以我也做了以下操作:
- 我查了下电脑,
bash_profile
里面有相同的ENV,我已经改了。 - 然后我做了一个来源
~/.bash_profile
- 我重新启动了 Puma,但该应用程序仍在使用通过 ENV[MONGO]. 访问的 Mlab DB
有没有办法找出应用程序从何处提取 ENV 变量?
ruby 中没有具体说明环境变量的设置位置,因为它们是 ENVIRONMENT VARIABLES 所以首先要了解这意味着什么。
你可以尝试 grep 递归
grep -rnw 'base/path/to/search/' -e 'MONGO'
根据您使用的shell,可能还有其他方法可以找到它们。但是,如果它们是从 shell 未加载的文件中加载的,而是由您的 ruby 应用程序加载的,即 yaml 文件,这些可能对您没有帮助。 有关详细信息,请参阅 this answer