Sinatra 和 ActiveRecord(无 Rails)- 创建测试数据库
Sinatra and ActiveRecord (no Rails) - Creating test database
我正在尝试将 Sinatra 与 ActiveRecord 结合使用的更简单的设置,但我 运行 遇到了一些令人费解的问题,希望有其他人关注它。我将提供所有相关文件:
database.yml:
development:
adapter: sqlite3
database: db/development.sqlite3
test:
adapter: sqlite3
database: db/test.sqlite3
production:
url: <%= ENV['DATABASE_URL'] %>
Rakefile:
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
- 相同 + 运行s 迁移
我知道我在 Rails 之外使用 ActiveRecord,所以我怀疑问题出在与 database.yml 或某些环境变量或其他东西的处理有关的地方。但我想不通。
想法?
尝试 RACK_ENV
而不是 RAILS_ENV
:
$ rake db:create RACK_ENV=test
或者:
$ RACK_ENV=test rake db:create
我正在尝试将 Sinatra 与 ActiveRecord 结合使用的更简单的设置,但我 运行 遇到了一些令人费解的问题,希望有其他人关注它。我将提供所有相关文件:
database.yml:
development:
adapter: sqlite3
database: db/development.sqlite3
test:
adapter: sqlite3
database: db/test.sqlite3
production:
url: <%= ENV['DATABASE_URL'] %>
Rakefile:
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
- 相同 + 运行s 迁移
我知道我在 Rails 之外使用 ActiveRecord,所以我怀疑问题出在与 database.yml 或某些环境变量或其他东西的处理有关的地方。但我想不通。
想法?
尝试 RACK_ENV
而不是 RAILS_ENV
:
$ rake db:create RACK_ENV=test
或者:
$ RACK_ENV=test rake db:create