When create unique index on PostgreSQL, you can speficy WHERE statement as you know.
pg_index_where will provide this function with migrate the database.
Add this line to your application's Gemfile:
gem 'pg_index_where'
And then execute:
$ bundle
Or install it yourself as:
$ gem install pg_index_where
Add this option your migrate files.
:where => 'deleted_at is null'
Examples.
class AddIndex < ActiveRecord::Migration
def up
add_index "customers", ["code"], :name => "customers_idx01", :unique => true, :where => 'deleted_at is null'
end
def down
remove_index "customers", :name => "customers_idx01"
end
end
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request