diff options
author | francis <francis> | 2008-02-12 14:46:58 +0000 |
---|---|---|
committer | francis <francis> | 2008-02-12 14:46:58 +0000 |
commit | d296a09d9acd0dc033e509dbb05dbd36b0b65762 (patch) | |
tree | e45571f4bd2afd3cd2ee42553a0e28a0a413747e /db | |
parent | 56d2ffd5d936aea42e2218fbd1dc9c7bc4bfe301 (diff) |
It's a shitty way to add foreign keys to the database, but it works (tried to
find a plugin, but there are many and they're not very good).
Diffstat (limited to 'db')
-rw-r--r-- | db/migrate/032_addforeignkeys.rb | 32 | ||||
-rw-r--r-- | db/schema.rb | 2 |
2 files changed, 33 insertions, 1 deletions
diff --git a/db/migrate/032_addforeignkeys.rb b/db/migrate/032_addforeignkeys.rb new file mode 100644 index 000000000..645aa2324 --- /dev/null +++ b/db/migrate/032_addforeignkeys.rb @@ -0,0 +1,32 @@ +class Addforeignkeys < ActiveRecord::Migration + def self.up + execute "ALTER TABLE incoming_messages ADD CONSTRAINT fk_incoming_messages_info_request FOREIGN KEY (info_request_id) REFERENCES info_requests(id)" + + execute "ALTER TABLE info_request_events ADD CONSTRAINT fk_info_request_events_info_request FOREIGN KEY (info_request_id) REFERENCES info_requests(id)" + execute "ALTER TABLE info_requests ADD CONSTRAINT fk_info_requests_user FOREIGN KEY (user_id) REFERENCES users(id)" + execute "ALTER TABLE info_requests ADD CONSTRAINT fk_info_requests_public_body FOREIGN KEY (public_body_id) REFERENCES public_bodies(id)" + + execute "ALTER TABLE outgoing_messages ADD CONSTRAINT fk_outgoing_messages_info_request FOREIGN KEY (info_request_id) REFERENCES info_requests(id)" + execute "ALTER TABLE outgoing_messages ADD CONSTRAINT fk_incoming_message_followup_info_request FOREIGN KEY (incoming_message_followup_id) REFERENCES incoming_messages(id)" + + execute "ALTER TABLE post_redirects ADD CONSTRAINT fk_post_redirects_user FOREIGN KEY (user_id) REFERENCES users(id)" + + execute "ALTER TABLE public_body_versions ADD CONSTRAINT fk_public_body_versions_public_body FOREIGN KEY (public_body_id) REFERENCES public_bodies(id)" + end + + def self.down + execute "ALTER TABLE incoming_messages DROP CONSTRAINT fk_incoming_messages_info_request" + + execute "ALTER TABLE info_request_events DROP CONSTRAINT fk_info_request_events_info_request" + + execute "ALTER TABLE info_requests DROP CONSTRAINT fk_info_requests_user" + execute "ALTER TABLE info_requests DROP CONSTRAINT fk_info_requests_public_body" + + execute "ALTER TABLE outgoing_messages DROP CONSTRAINT fk_outgoing_messages_info_request" + execute "ALTER TABLE outgoing_messages DROP CONSTRAINT fk_incoming_message_followup_info_request" + + execute "ALTER TABLE post_redirects DROP CONSTRAINT fk_post_redirects_user" + + execute "ALTER TABLE public_body_versions DROP CONSTRAINT fk_public_body_versions_public_body" + end +end diff --git a/db/schema.rb b/db/schema.rb index 72e075da7..c01221291 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 => 31) do +ActiveRecord::Schema.define(:version => 32) do create_table "incoming_messages", :force => true do |t| t.integer "info_request_id", :null => false |