diff options
Diffstat (limited to 'db')
-rw-r--r-- | db/migrate/046_add_last_event_id_to_alert_table.rb | 13 | ||||
-rw-r--r-- | db/schema.rb | 11 |
2 files changed, 20 insertions, 4 deletions
diff --git a/db/migrate/046_add_last_event_id_to_alert_table.rb b/db/migrate/046_add_last_event_id_to_alert_table.rb new file mode 100644 index 000000000..4e67fee5b --- /dev/null +++ b/db/migrate/046_add_last_event_id_to_alert_table.rb @@ -0,0 +1,13 @@ +class AddLastEventIdToAlertTable < ActiveRecord::Migration + def self.up + add_column :user_info_request_sent_alerts, :info_request_event_id, :integer, :default => nil + execute "ALTER TABLE user_info_request_sent_alerts ADD CONSTRAINT fk_user_info_request_sent_alert_info_request_event FOREIGN KEY (info_request_event_id) REFERENCES info_request_events(id)" + # The coalesce is because null values are considred not equal in SQL, and we want them + # to be considered equal for the purposes of this index. + execute "create unique index user_info_request_sent_alerts_unique_index on user_info_request_sent_alerts (user_id, info_request_id, alert_type, coalesce(info_request_event_id, -1))" + end + + def self.down + remove_column :user_info_request_sent_alerts, :info_request_event_id + end +end diff --git a/db/schema.rb b/db/schema.rb index d057a9a10..dbdc7f4fd 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -9,7 +9,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 45) do +ActiveRecord::Schema.define(:version => 46) do create_table "incoming_messages", :force => true do |t| t.integer "info_request_id", :null => false @@ -116,11 +116,14 @@ ActiveRecord::Schema.define(:version => 45) do add_index "sessions", ["updated_at"], :name => "index_sessions_on_updated_at" create_table "user_info_request_sent_alerts", :force => true do |t| - t.integer "user_id", :null => false - t.integer "info_request_id", :null => false - t.string "alert_type", :null => false + t.integer "user_id", :null => false + t.integer "info_request_id", :null => false + t.string "alert_type", :null => false + t.integer "info_request_event_id" end + add_index "user_info_request_sent_alerts", ["user_id", "info_request_id", "alert_type"], :name => "user_info_request_sent_alerts_unique_index", :unique => true + create_table "users", :force => true do |t| t.string "email", :null => false t.string "name", :null => false |