aboutsummaryrefslogtreecommitdiffstats
path: root/db
diff options
context:
space:
mode:
Diffstat (limited to 'db')
-rw-r--r--db/migrate/049_track_things.rb37
-rw-r--r--db/schema.rb18
2 files changed, 54 insertions, 1 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
diff --git a/db/schema.rb b/db/schema.rb
index 7083fbfd6..e800b916d 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 => 48) do
+ActiveRecord::Schema.define(:version => 49) do
create_table "incoming_messages", :force => true do |t|
t.integer "info_request_id", :null => false
@@ -117,6 +117,22 @@ ActiveRecord::Schema.define(:version => 48) do
add_index "sessions", ["session_id"], :name => "index_sessions_on_session_id"
add_index "sessions", ["updated_at"], :name => "index_sessions_on_updated_at"
+ create_table "track_things", :force => true do |t|
+ t.integer "tracking_user_id", :null => false
+ t.string "track_query", :null => false
+ t.integer "info_request_id"
+ t.integer "tracked_user_id"
+ t.integer "public_body_id"
+ t.string "track_medium", :null => false
+ end
+
+ create_table "track_things_sent_emails", :force => true do |t|
+ t.integer "track_thing_id", :null => false
+ t.integer "info_request_event_id"
+ t.integer "user_id"
+ t.integer "public_body_id"
+ end
+
create_table "user_info_request_sent_alerts", :force => true do |t|
t.integer "user_id", :null => false
t.integer "info_request_id", :null => false