1
我正在尝试使用Sinatra和ActiveRecord更简单的设置,我遇到了一些令人困惑的问题,并且会爱上它的另一组眼睛。我会给所有相关的文件:Sinatra和ActiveRecord(无轨) - 创建测试数据库
的database.yml:
development:
adapter: sqlite3
database: db/development.sqlite3
test:
adapter: sqlite3
database: db/test.sqlite3
production:
url: <%= ENV['DATABASE_URL'] %>
Rake文件:
require_relative "demo_app"
require 'sinatra/activerecord/rake'
require 'rake/testtask'
Rake::TestTask.new do |t|
t.pattern = "test/*_test.rb"
end
test_helper.rb中:
ENV['RACK_ENV'] = 'test'
ENV["SINATRA_ENV"] = "test"
require_relative '../demo_app'
require 'minitest/autorun'
require 'rack/test'
ActiveRecord::Migration.maintain_test_schema!
迁移文件:
class CreatePeople < ActiveRecord::Migration
def change
create_table :people do |t|
t.string :name
t.date :dob
t.string :gender
t.string :gender
t.integer :zipcode
end
end
end
现在,我想对测试数据库运行测试。当我尝试做
rake db:create RAILS_ENV=test
- 它创建了一个development.sqlite3
rake db:migrate RAILS_ENV=test
- 相同+运行迁移
我知道我使用ActiveRecord以外的Rails的,所以我怀疑问题出地方有关处理database.yml或者一些环境变量什么的。但我无法弄清楚。
想法?
有趣:创建一个空的test.sqlite3(0字节) – pitosalas
好了,这是什么'分贝:migrate'呢? –
Ah:RACK_ENV = test rake db:migrate似乎有效,RACK_ENV = test rake db:seed也是如此。他们正在创建测试数据库。你能解释一下rails_env和rack_env之间的关系吗? – pitosalas