Ruby on rails 使用schema.rb快速构建用于测试的遗留数据库

Ruby on rails 使用schema.rb快速构建用于测试的遗留数据库,ruby-on-rails,ruby,ruby-on-rails-4,rspec,database-schema,Ruby On Rails,Ruby,Ruby On Rails 4,Rspec,Database Schema,我目前正在开发一个使用两个不同数据库的系统。其中一个是新的,这是大多数事情发生的地方,但我使用的是其他地方另一个rails应用程序中的旧数据库。因此,我的项目中没有数据库的迁移。然而,我希望能够建立一个关于詹金斯的脚本,这将允许我设置,这样我就可以做CI。我的database.yml文件基本上如下所示: default: &default adapter: postgresql encoding: unicode development: <<: *default

我目前正在开发一个使用两个不同数据库的系统。其中一个是新的,这是大多数事情发生的地方,但我使用的是其他地方另一个rails应用程序中的旧数据库。因此,我的项目中没有数据库的迁移。然而,我希望能够建立一个关于詹金斯的脚本,这将允许我设置,这样我就可以做CI。我的database.yml文件基本上如下所示:

default: &default
  adapter: postgresql
  encoding: unicode
development:
  <<: *default
  database: proj_development
test:
  <<: *default
  database: proj_test
legacy_development:
  <<: *default
  database: legacy_development
legacy_test:
  <<: *default
  database: legacy_test
ActiveRecord::Schema.define(:version => 20140721152610) do 
  create_table "users", :force => true do |t|
    t.datetime "created_at"
    t.datetime "updated_at"
    t.string   "password",                 :limit => 60
    t.string   "security_token",           :limit => 32
    t.text     "additional_information"
  end

  create_table "email_addresses", :force => true do |t|
    t.string   "email"
    t.datetime "verified_at"
    t.string   "status"
  end
end

有没有一种方法可以让我运行一个命令来加载该模式并设置它,以便用该模式构建遗留的_测试?某种类型的
rake db:schema:load--file=legacy\u schema.rb--database=legacy\u test
您可以使用
schema
指定要加载的自定义模式文件。因此,要创建在
legacy_development
环境中定义的数据库并加载自定义模式,请使用:

rake db:create RAILS_ENV=legacy_development
rake db:schema:load RAILS_ENV=legacy_development SCHEMA=db/legacy_schema.rb

您在新应用程序中使用的是什么版本的Rails?我使用的是Rails 4.1.1。这基本上是可行的,但它出错了,因为我没有定义用于旧版开发的环境。有什么办法解决这个问题吗?大部分有效吗?怎么了?我刚刚在rails-4.1.1下测试了它,它在没有定义环境的情况下工作。database.yml中的
legacy_development
条目应该足够了。我可以通过一次救援来解决这个问题。你的回答是正确的。