62 lines
1.6 KiB
Ruby
62 lines
1.6 KiB
Ruby
|
|
class AddCampaignsAndTemplates < ActiveRecord::Migration
|
|
|
|
def self.up
|
|
create_table :campaigns do |t|
|
|
t.integer :workspace_id, :null => false
|
|
t.string :name, :limit => 512
|
|
# Serialized, stores SMTP/other protocol config options etc.
|
|
t.text :prefs
|
|
t.integer :status, :default => 0
|
|
t.timestamp :started_at
|
|
t.timestamps
|
|
end
|
|
|
|
create_table :email_templates do |t|
|
|
t.string :name, :limit => 512
|
|
t.string :subject, :limit => 1024
|
|
t.text :body
|
|
t.integer :parent_id
|
|
t.integer :campaign_id
|
|
end
|
|
create_table :attachments do |t|
|
|
t.string :name, :limit => 512
|
|
t.binary :data
|
|
t.string :content_type, :limit => 512
|
|
t.boolean :inline, :null => false, :default => true
|
|
t.boolean :zip, :null => false, :default => false
|
|
end
|
|
create_table :attachments_email_templates, :id => false do |t|
|
|
t.integer :attachment_id
|
|
t.integer :email_template_id
|
|
end
|
|
|
|
create_table :email_addresses do |t|
|
|
t.integer :campaign_id, :null => false
|
|
t.string :first_name, :limit => 512
|
|
t.string :last_name, :limit => 512
|
|
t.string :address, :limit => 512
|
|
t.boolean :sent, :null => false, :default => false
|
|
t.timestamp :clicked_at
|
|
end
|
|
|
|
create_table :web_templates do |t|
|
|
t.string :name, :limit => 512
|
|
t.string :title, :limit => 512
|
|
t.string :body, :limit => 524288
|
|
t.integer :campaign_id
|
|
end
|
|
end
|
|
|
|
def self.down
|
|
drop_table :campaigns
|
|
drop_table :email_templates
|
|
drop_table :attachments
|
|
drop_table :attachments_email_templates
|
|
drop_table :email_addresses
|
|
drop_table :web_templates
|
|
end
|
|
|
|
end
|
|
|