Class: CreateConSyncSchema

Inherits:
ActiveRecord::Migration
  • Object
show all
Defined in:
lib/generators/install_con_sync/templates/create_con_sync_schema.rb

Instance Method Summary collapse

Instance Method Details

#downObject



67
68
69
# File 'lib/generators/install_con_sync/templates/create_con_sync_schema.rb', line 67

def down
  
end

#upObject



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/generators/install_con_sync/templates/create_con_sync_schema.rb', line 2

def up
  create_table :contacts do |t|
    t.string :composite_name
    t.string :first_name
    t.string :middle_name
    t.string :last_name
    t.string :prefix
    t.string :suffix
    t.string :nickname
    t.string :organization
    t.string :job_title
    t.string :department
    t.date :birthdate
    t.text :note
    t.string :device_id
    t.integer :record_id, default: 0
    t.datetime :creation_date
    t.datetime :modification_date
    t.integer :user_id
    t.timestamps
  end

  create_table :phones do |t|
    t.string :label
    t.string :encrypted_number
    t.string :cc_prefix
    t.string :extension
    t.integer :contact_id

    t.timestamps
  end

  create_table :emails do |t|
    t.string :label
    t.string :encrypted_email
    t.integer :contact_id

    t.timestamps
  end

  if table_exists? :users
    add_column :users, :last_contact_sync, :datetime
    add_column :users, :encrypted_number, :string
    add_column :users, :cc_prefix, :string
    add_index :users, :encrypted_number
  else
    create_table :users do |t|
      t.string :first_name
      t.string :middle_name
      t.string :last_name
      t.string :email
      t.string :encrypted_number
      t.string :cc_prefix
      t.datetime :last_contact_sync
    end
    add_index :users, :encrypted_number
  end

  add_index :contacts, [:record_id, :device_id], name: "unique_device_contact", unique: true
  add_index :contacts, :user_id
  add_index :phones, :encrypted_number
  add_index :emails, :encrypted_email

end