【发布时间】:2010-03-21 23:00:52
【问题描述】:
有没有人看到脚本/控制台和脚本/服务器在哪里加载两个不同的数据库(尽管两者都使用相同的报告)?这是第一个输出
$ script/server
=> Booting WEBrick
=> Rails 2.3.5 application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2010-03-21 15:54:05] INFO WEBrick 1.3.1
[2010-03-21 15:54:05] INFO ruby 1.8.7 (2010-01-10) [i386-mingw32]
[2010-03-21 15:54:05] INFO WEBrick::HTTPServer#start: pid=7148 port=3000
没有错误。然后我运行用于输入表单的标准代码 - 没问题。
检查开发数据库(底部的.yml):
mysql> select * from books;
[...]
| 712 | Book | Book Name | 2010-03-21 22:29:22 | 2010-03-21 22:29:22 |
[...]
712 rows in set (0.00 sec)
代码显然在几秒钟前保存了它
现在这里是脚本/控制台的输出:
$ script/console
Loading development environment (Rails 2.3.5)
>> Book.all
=> []
什么都没有。此外,经过进一步检查,它正在使用生产数据库,但我不知道为什么。这里有什么想法吗?所有控制台都已关闭并重新打开。
更新: 请求的 .yml 文件(看不出它有什么用(用户名和密码都相同)) -
development:
adapter: mysql
database: BooksDBdev
username: <user name>
password: <long string>
timeout: 5000
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
adapter: mysql
database: BooksDBtest
username: <user name>
password: <long string>
timeout: 5000
production:
adapter: mysql
database: BooksDB
username: <user name>
password: <long string>
timeout: 5000
更新 2:这是我强制控制台环境时的输出。
$ script/console development
Loading development environment (Rails 2.3.5)
>> Book.all
=> []
>> exit
$ ruby script/console development
Loading development environment (Rails 2.3.5)
>> Book.all
=> []
仅供参考,我的环境变量中没有指定 RAILS_ENV。
【问题讨论】:
-
你能说得更具体点吗? 什么在使用生产数据库?您说您检查了“开发数据库”...也许粘贴您的 database.yml?
-
完成...命令“ruby script/console”使用生产数据库,尽管报告它正在使用开发数据库。命令“ruby script/server”使用开发数据库,因为它应该。
-
如果显式使用环境名称会发生什么?例如脚本/服务器开发和脚本/控制台开发
-
同样的处理——尽管控制台说“开发”,但它没有使用开发数据库。我想不通。
标签: ruby-on-rails ruby console