如何启动rails控制台并专门使用测试数据库?

Jam*_*mes 29 ruby-on-rails

我想启动rails控制台并在不是默认数据库的数据库中创建数据库条目,例如测试数据库.我很感激任何帮助.

Har*_*tty 51

要在test环境中启动控制台:

ruby script/console test 
ruby script/console production 
Run Code Online (Sandbox Code Playgroud)

要在test环境中运行rake任务:

rake db:create RAILS_ENV=test 
rake db:migrate RAILS_ENV=test 
Run Code Online (Sandbox Code Playgroud)

在Rails 3或更高版本中,您可以使用:

rails console test
rails c test
Run Code Online (Sandbox Code Playgroud)

  • 为了完整起见,也可以使用“ rails console -e test”或“ rails c -e test”(在Rails 5.2 /sf/answers/3718951771/中)>不建议将环境名称作为常规参数传递,并且将在下一个Rails版本中删除。请改用-e选项。 (2认同)

Jyo*_*thu 8

您可以将环境传递为RAILS_ENV=test:

$ RAILS_ENV=test bundle exec rails console
Run Code Online (Sandbox Code Playgroud)

要么:

$ RAILS_ENV=test bundle exec rails c
Run Code Online (Sandbox Code Playgroud)

你也可以这样做:

$ bundle exec rails console test
Run Code Online (Sandbox Code Playgroud)

要么:

$ bundle exec rails c test
Run Code Online (Sandbox Code Playgroud)

你可以看到像

Loading test environment (Rails 3.2.8)
1.9.3p327 :001 >
Run Code Online (Sandbox Code Playgroud)


Tob*_*obi 6

在 Rails 6 中,语法已经改变了

rails c -e test
Run Code Online (Sandbox Code Playgroud)