pit*_*las 2 ruby-on-rails sinatra sinatra-activerecord
我正在尝试使用带有ActiveRecord的Sinatra的更简单的设置,我遇到了一些令人费解的问题,并且会喜欢另一组眼睛.我将提供所有相关文件:
database.yml的:
development:
adapter: sqlite3
database: db/development.sqlite3
test:
adapter: sqlite3
database: db/test.sqlite3
production:
url: <%= ENV['DATABASE_URL'] %>
Run Code Online (Sandbox Code Playgroud)
Rake文件:
require_relative "demo_app"
require 'sinatra/activerecord/rake'
require 'rake/testtask'
Rake::TestTask.new do |t|
t.pattern = "test/*_test.rb"
end
Run Code Online (Sandbox Code Playgroud)
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!
Run Code Online (Sandbox Code Playgroud)
迁移文件:
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
Run Code Online (Sandbox Code Playgroud)
现在,我想对测试数据库运行测试.当我尝试做的时候
rake db:create RAILS_ENV=test - 它创建了一个development.sqlite3
rake db:migrate RAILS_ENV=test - 相同+运行迁移
我知道我在Rails之外使用ActiveRecord,所以我怀疑问题出在与database.yml或某些环境变量或其他东西的处理有关的地方.但我无法弄明白.
思考?
尝试RACK_ENV而不是RAILS_ENV:
$ rake db:create RACK_ENV=test
Run Code Online (Sandbox Code Playgroud)
要么:
$ RACK_ENV=test rake db:create
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1333 次 |
| 最近记录: |