Wil*_*ckl 3 rspec ruby-on-rails
有没有办法用 RSpec 测试数据库索引是否存在?
我正在使用friendly_id gem,但经常忘记为 slug 字段创建数据库索引。因此,我想将其包含在我的 RSpec 测试中。
您可以使用index_exists?检查unique选项unique: true:
=> ActiveRecord::Migration.index_exists?(:users, :user_id, unique: true)
=> -- index_exists?(:users, :user_id)
=> -> 0.0559s
=> false
Run Code Online (Sandbox Code Playgroud)
或者:
=> ActiveRecord::Base.connection.index_exists?(:users, :user_id)
=> false
Run Code Online (Sandbox Code Playgroud)
=> ActiveRecord::Base.connection.indexes(:users).map(&:columns)
=> [["birthday"],
=> ["confirmation_token"],
=> ["email"],
=> ["facebook_id"],
=> ["reset_password_token"]]
Run Code Online (Sandbox Code Playgroud)
与unique:
=>ActiveRecord::Base.connection.indexes(:users).map { |x| Hash[:unique, x.unique, :column, x.columns ] }
=> [{:unique=>false, :column=>["birthday"]},
=> {:unique=>true, :column=>["confirmation_token"]},
=> {:unique=>true, :column=>["email"]},
=> {:unique=>true, :column=>["facebook_id"]},
=> {:unique=>true, :column=>["reset_password_token"]}]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1796 次 |
| 最近记录: |