diff options
author | francis <francis> | 2008-04-01 16:40:37 +0000 |
---|---|---|
committer | francis <francis> | 2008-04-01 16:40:37 +0000 |
commit | baa530c0c8f5fb1e12173fbfde8f722ebeffe5be (patch) | |
tree | d80dd72953de39723d3208f78247052352e85fb1 /db | |
parent | 708480da65908e38e00cfa1eaef9b7f04cc9a4a6 (diff) |
Skeleton of tracking / alerting / email.
Diffstat (limited to 'db')
-rw-r--r-- | db/migrate/049_track_things.rb | 37 | ||||
-rw-r--r-- | db/schema.rb | 18 |
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 |