class CustomerTracking < ActiveRecord::Migration def self.up create_table :customers do |t| t.string :first_name t.string :last_name t.string :email t.string :company t.text :customer_attributes t.timestamps t.datetime :deleted_at end create_table :orders do |t| t.integer :customer_id t.integer :orderable_id, :references => nil t.string :orderable_type t.text :license_key t.text :order_attributes t.timestamps t.datetime :deleted_at end create_table :visitors do |t| t.string :trackable_number t.string :user_agent t.timestamps t.datetime :deleted_at end create_table :customers_visitors, :id => false, :primary_key => [:customer_id, :visitor_id] do |t| t.integer :customer_id t.integer :visitor_id end create_table :visitor_tracks do |t| t.integer :visitor_id t.text :track t.integer :trackable_id, :references => nil t.string :trackable_type t.integer :source_type_id, :references => :allowed_values t.string :source t.string :url t.string :keywords t.string :targetable t.boolean :download, :default => false t.boolean :checkout, :default => false t.boolean :order, :default => false t.timestamps end create_table :redirects do |t| t.integer :source_type_id, :references => :allowed_values t.string :name t.string :redirect_path, :null => false t.string :redirect_to, :null => false t.timestamps end end def self.down drop_table :customers drop_table :orders drop_table :visitors drop_table :customers_visitors drop_table :visitor_tracks drop_table :redirects end end