75 lines
1.9 KiB
Ruby
75 lines
1.9 KiB
Ruby
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
|