新手问题 请各位看看这是不是 Rails console 和 runner production 下的一个 bug

gazeldx · 2014年08月27日 · 最后由 beiersi 回复于 2014年09月01日 · 3526 次阅读

[email protected]$ cd /project_name/ $ rails console -e production 这时表面上它提示我们进入了 production environment,实际上还是缺省的 development,不信可以查一个表试试,如: > YourModel.all.count

$ rails runner -e production ... 也是一样的,查的是 your_project_development 这个数据库。

解决办法是:用 RAILS_ENV=production rails console

请大家确认一下,谢谢。

你要检查你的 database.yml 看是不是 development 模式和 production 模式用的是同一个数据库。

#1 楼 @lgn21st 我已确认过 database.yml,不是同一个数据库。

rails c production

#2 楼 @gazeldx rails c 本来就是靠 RAILS_ENV 指定变量啊~~ -

#3 楼 @dddd1919 #4 楼 @qifengle 各位,谢谢。 rails c production RAILS_ENV=production rails console

是没有问题的,不过我在此想展开讨论的是: $ rails console -e production是有问题的! 因为rails console --help里面就指明了-e production 这种用法的存在。 谢谢。

我测试也有这个问题。

楼主你在刷牙么

刚试过,没问题

想查看当前的数据库连接,在 console 中输入 ActiveRecord::Base.configurations 即可。 你真的觉得 Rails 在这个地方先天会有 Bug 么?

确实是 bug, 是 spring 导致的。

#10 楼 @zgm #6 楼 @Rei 谢谢了。谁能给改一下?

更新 spring 就好了 看 spring 的 repo 三个月前就修复掉了

健神是在刷牙

用都是用 rails c p 和 rails s -e production

我也有一次无意发现这个问题,我平时习惯是 rails c production,某天鬼使神差加了个-e 发现不对,也没深究,继续开心的 rails c production.

测试了下,这边没有 spring 很正常呢

需要 登录 后方可回复, 如果你还没有账号请 注册新账号