--- /dev/null
+class RentableInheritance < ActiveRecord::Migration
+ def self.up
+ drop_table :games
+ drop_table :videos
+ drop_table :rentables
+ create_table :rentables do |t|
+ # for the inheritance
+ t.column :type, :string
+
+ # common columns
+ t.column :title, :string
+ t.column :newrelease, :boolean, :default => false
+
+ # video specific
+ t.column :video_genre, :integer
+ t.column :director, :integer
+ t.column :media, :integer
+
+ # game specific
+ t.column :game_genre, :integer
+ t.column :platform, :integer
+ end
+ end
+
+ def self.down
+ create_table :games do |t|
+ t.column :title, :string
+ t.column :platform, :integer
+ t.column :genre, :integer
+ t.column :rentable_id, :integer
+ end
+
+ create_table :videos do |t|
+ t.column :title, :string
+ t.column :newrelease, :boolean, :default => false
+ t.column :director, :string
+ t.column :genre, :integer
+ t.column :rentable_id, :integer
+ end
+
+ drop_table :rentables
+ create_table :rentables do |t|
+ t.column :rtype, :string
+ end
+ end
+end