DB: Integridade referencial

This commit is contained in:
2008-03-06 05:43:56 -03:00
parent e5bc6024ba
commit c58684c31c
12 changed files with 88 additions and 68 deletions

View File

@@ -0,0 +1,32 @@
class CreateFks < ActiveRecord::Migration
def self.add_fk(table, fields, reference, cascade = true)
sql = "alter table #{table} add foreign key (#{fields}) references #{reference}"
sql = sql + " on update cascade on delete cascade" if cascade
execute sql
end
def self.up
add_fk :attachments, :course_id, :courses
add_fk :courses_users, :user_id, :users
add_fk :courses_users, :course_id, :courses
add_fk :events, :created_by, :users
add_fk :events, :course_id, :courses
add_fk :log_entries, :course_id, :courses
add_fk :log_entries, :user_id, :users
add_fk :messages, :sender_id, :users
add_fk :wiki_pages, :course_id, :courses
add_fk :wiki_pages, :user_id, :users
add_fk :wiki_page_versions, :wiki_page_id, :wiki_pages
add_fk :wiki_page_versions, :course_id, :courses
add_fk :wiki_page_versions, :user_id, :users
end
def self.down
end
end

View File

@@ -0,0 +1,13 @@
class MoreParanoid < ActiveRecord::Migration
def self.up
add_column :courses, :deleted_at, :datetime
add_column :log_entries, :deleted_at, :datetime
add_column :users, :deleted_at, :datetime
end
def self.down
add_column :courses, :deleted_at
add_column :log_entries, :deleted_at
add_column :users, :deleted_at
end
end