aboutsummaryrefslogtreecommitdiffstats
path: root/db/migrate/049_track_things.rb
diff options
context:
space:
mode:
Diffstat (limited to 'db/migrate/049_track_things.rb')
-rw-r--r--db/migrate/049_track_things.rb37
1 files changed, 37 insertions, 0 deletions
diff --git a/db/migrate/049_track_things.rb b/db/migrate/049_track_things.rb
new file mode 100644
index 000000000..65871bc73
--- /dev/null
+++ b/db/migrate/049_track_things.rb
@@ -0,0 +1,37 @@
+class TrackThings < ActiveRecord::Migration
+ def self.up
+ create_table :track_things do |t|
+ t.column :tracking_user_id, :integer, :null => false
+ t.column :track_query, :string, :null => false
+
+ # optional foreign key links, for displaying people who are tracking this on pages
+ t.column :info_request_id, :integer, :default => nil
+ t.column :tracked_user_id, :integer, :default => nil
+ t.column :public_body_id, :integer, :default => nil
+
+ t.column :track_medium, :string, :null => false
+ end
+
+ execute "ALTER TABLE track_things ADD CONSTRAINT fk_track_request_tracking_user FOREIGN KEY (tracking_user_id) REFERENCES users(id)"
+ execute "ALTER TABLE track_things ADD CONSTRAINT fk_track_request_tracked_user FOREIGN KEY (tracked_user_id) REFERENCES users(id)"
+ execute "ALTER TABLE track_things ADD CONSTRAINT fk_track_request_info_request FOREIGN KEY (info_request_id) REFERENCES info_requests(id)"
+ execute "ALTER TABLE track_things ADD CONSTRAINT fk_track_request_public_body FOREIGN KEY (public_body_id) REFERENCES public_bodies(id)"
+
+ create_table :track_things_sent_emails do |t|
+ t.column :track_thing_id, :integer, :null => false
+
+ t.column :info_request_event_id, :integer, :default => nil
+ t.column :user_id, :integer, :default => nil
+ t.column :public_body_id, :integer, :default => nil
+ end
+
+ execute "ALTER TABLE track_things_sent_emails ADD CONSTRAINT fk_track_request_info_request_event FOREIGN KEY (info_request_event_id) REFERENCES info_request_events(id)"
+ execute "ALTER TABLE track_things_sent_emails ADD CONSTRAINT fk_track_request_user FOREIGN KEY (user_id) REFERENCES users(id)"
+ execute "ALTER TABLE track_things_sent_emails ADD CONSTRAINT fk_track_request_public_body FOREIGN KEY (user_id) REFERENCES users(id)"
+ end
+
+ def self.down
+ drop_table :track_things
+ drop_table :track_things_sent_emails
+ end
+end