相关疑难解决方法(0)

Rake db:test:准备任务删除开发数据库中的数据

在我的config/database.yml中使用Rails 3.2.6应用程序中的简单Rails sqlite3配置示例,我曾经重置我的开发数据库,​​重新播种它,并通过执行以下操作来准备我的测试数据库:

$ rake db:reset
$ rake db:test:prepare 
Run Code Online (Sandbox Code Playgroud)

在看了这篇关于在不同的数据库引擎上用Travis CI测试Rails应用程序的博客文章后,我想我会尝试一下,所以我使用Homebrew安装了mysql和postgresql (我在OSX Snow Leopard上),设置它们按照brew info说明.我安装了相关的gem,并按如下方式配置了数据库和Travis文件:

的Gemfile

# ...
group :development, :test do
  # ...
  gem 'sqlite3', '1.3.6'
end

group :test do
  # ...
  # Test mysql on Travis CI
  gem 'mysql2', '0.3.11'
end

group :test, :production do
  # ...
  # Test postgres on Travis CI and deploy on Heroku
  gem 'pg', '0.13.2'
end
Run Code Online (Sandbox Code Playgroud)

配置/ database.yml的

sqlite: …
Run Code Online (Sandbox Code Playgroud)

rake ruby-on-rails ruby-on-rails-3 travis-ci ruby-on-rails-3.2

12
推荐指数
1
解决办法
1万
查看次数

如何在除dev之外的环境中运行rake任务?

我有一个具有特殊"临时"环境的登台机器.我总是忘记在那台机器上运行rake任务,如:

rake jobs:work RAILS_ENV=staging
Run Code Online (Sandbox Code Playgroud)

所以我最终做了:

rake jobs:work
Run Code Online (Sandbox Code Playgroud)

然后我很困惑为什么我的数据库中没有任何变化.卫生署!这是因为我不记得提供RAILS_ENV = staging.

但我永远不需要在该服务器上运行任何开发环境.默认情况下,如何在"临时"环境中运行rake任务?

rake ruby-on-rails-3

3
推荐指数
2
解决办法
5543
查看次数

如何在Rails中使用seeds.rb来测试数据?

我已经seeds.rb填充了我的开发数据库.我知道我可以seeds.rb使用以下方法轻松应用于我的测试数据库:

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

但是,我想要一个不同的 seeds.rb文件来填充我的测试数据库.也许吧seeds_test.rb.这对于rails程序员来说一定是一个非常普遍的要求,不是吗?

如果没有简单的方法可以做到这一点rake db:seed:seeds_test RAILS_ENV=test,那么我将如何创建一个rake任务呢?我会想到这样的事情lib/tasks/test_seeds.rake:

namespace :db do
  desc "Seed data for tests"
  task :seed_test => :environment do
    load "#{Rails.root}/db/seeds_test.rb"
  end
end
Run Code Online (Sandbox Code Playgroud)

我认为这样可行,但是我希望我的rake任务能够自动知道只将这个应用到测试数据库而不必指定:

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

如何获取rake任务,以便我必须在命令行中输入:

rake db:seed_test
Run Code Online (Sandbox Code Playgroud)

更新:另一个stackoverflow问题链接到答案的位置:

Rails.env = 'test'
Run Code Online (Sandbox Code Playgroud)

不幸的是,实际上并没有做任何事情(至少从Rails 4.2开始):(.

rake rspec ruby-on-rails minitest rake-task

1
推荐指数
1
解决办法
5297
查看次数