【发布时间】:2017-08-23 11:33:47
【问题描述】:
迁移到 Rails 5 后,我发现 schema.rb 有额外的变化,例如 options 参数添加了有关用于生成架构的数据库的信息。
create_table "student", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" do |t|
t.integer "admission_id"
end
我们在 Jenkins 上使用 SQLite3 运行我们的 RSpec 单元测试,该测试运行顺利。但升级后,架构更改现在是特定于数据库的,这无法通过我们在 Jenkins 上的测试。
我想生成两个不同的架构文件(test_schema.rb、schema.rb),一个用于测试,另一个用于生产环境。有没有办法在运行 rake db:schema:load 时传递模式文件。
例子:
rake db:schema:load --schema-file test_schema.rb
如果有人能分享如何使用两个不同的数据库,我也将不胜感激。我知道使用不同的数据库运行测试和生产不是一个好习惯。
【问题讨论】:
-
顺便说一句,
rake命令现在统一在rails下。例如rails generate migration ...、rails db:migrate、rails server等
标签: ruby-on-rails ruby-on-rails-5