| 20121228171549_initial_schema.rb - warvox - VoIP based wardialing tool, forked … | |
| git clone git://jay.scot/warvox | |
| Log | |
| Files | |
| Refs | |
| README | |
| --- | |
| 20121228171549_initial_schema.rb (6474B) | |
| --- | |
| 1 # class InitialSchema < ActiveRecord::Migration | |
| 2 class InitialSchema < ActiveRecord::Migration[5.0] | |
| 3 def up | |
| 4 # Require the intarray extension | |
| 5 execute("CREATE EXTENSION IF NOT EXISTS intarray") | |
| 6 | |
| 7 create_table :settings do |t| | |
| 8 t.string :var, null: false | |
| 9 t.text :value, null: true | |
| 10 t.integer :thing_id, null: true | |
| 11 t.string :thing_type, limit: 30, null: true | |
| 12 t.timestamps null: false | |
| 13 end | |
| 14 | |
| 15 add_index :settings, [ :thing_type, :thing_id, :var ], unique: true | |
| 16 | |
| 17 create_table 'users' do |t| | |
| 18 t.string :login, null: false # opt… | |
| 19 t.string :email, null: true # opt… | |
| 20 t.string :crypted_password, null: false # opt… | |
| 21 t.string :password_salt, null: false # opt… | |
| 22 t.string :persistence_token, null: false # req… | |
| 23 t.string :single_access_token, null: false # opt… | |
| 24 t.string :perishable_token, null: false # opt… | |
| 25 | |
| 26 # Magic columns, just like ActiveRecord's created_at and updated_a… | |
| 27 t.integer :login_count, null: false, default: 0 # option… | |
| 28 t.integer :failed_login_count, null: false, default: 0 # option… | |
| 29 t.datetime :last_request_at # … | |
| 30 t.datetime :current_login_at # … | |
| 31 t.datetime :last_login_at # … | |
| 32 t.string :current_login_ip # … | |
| 33 t.string :last_login_ip # … | |
| 34 | |
| 35 t.timestamps null: false | |
| 36 t.boolean "enabled", default: true | |
| 37 t.boolean "admin", default: true | |
| 38 end | |
| 39 | |
| 40 create_table 'projects' do |t| | |
| 41 t.timestamps null: false | |
| 42 t.text "name", null: false | |
| 43 t.text "description" | |
| 44 t.text "included" | |
| 45 t.text "excluded" | |
| 46 t.string "created_by" | |
| 47 end | |
| 48 | |
| 49 create_table "jobs" do |t| | |
| 50 t.timestamps null: false | |
| 51 t.integer "project_id", null: false | |
| 52 t.string "locked_by" | |
| 53 t.timestamp "locked_at" | |
| 54 t.timestamp "started_at" | |
| 55 t.timestamp "completed_at" | |
| 56 t.string "created_by" | |
| 57 t.string "task", null: false | |
| 58 t.binary "args" | |
| 59 t.string "status" | |
| 60 t.text "error" | |
| 61 t.integer "progress", default: 0 | |
| 62 end | |
| 63 | |
| 64 create_table "lines" do |t| | |
| 65 t.timestamps null: false | |
| 66 t.text "number", null: false | |
| 67 t.integer "project_id", null: false | |
| 68 t.text "line_type" | |
| 69 t.text "notes" | |
| 70 end | |
| 71 | |
| 72 create_table "line_attributes" do |t| | |
| 73 t.timestamps null: false | |
| 74 t.integer "line_id", null: false | |
| 75 t.integer "project_id", null: false | |
| 76 t.text "name", null: false | |
| 77 t.binary "value", null: false | |
| 78 t.string "content_type", default: "text" | |
| 79 end | |
| 80 | |
| 81 create_table "calls" do |t| | |
| 82 # Created by the dialer job | |
| 83 t.timestamps null: false | |
| 84 t.text "number", null: false | |
| 85 t.integer "project_id", null: false | |
| 86 t.integer "job_id", null: false | |
| 87 t.integer "provider_id", null: false | |
| 88 t.boolean "answered" | |
| 89 t.boolean "busy" | |
| 90 t.text "error" | |
| 91 t.integer "audio_length" | |
| 92 t.integer "ring_length" | |
| 93 t.text "caller_id" | |
| 94 | |
| 95 # Generated by the analysis job | |
| 96 t.integer "analysis_job_id" | |
| 97 t.timestamp "analysis_started_at" | |
| 98 t.timestamp "analysis_completed_at" | |
| 99 t.float "peak_freq" | |
| 100 t.text "peak_freq_data" | |
| 101 t.text "line_type" | |
| 102 t.integer "fprint", array: true | |
| 103 end | |
| 104 | |
| 105 create_table "call_media" do |t| | |
| 106 t.integer "call_id", null: false | |
| 107 t.integer "project_id", null: false | |
| 108 t.binary "audio" | |
| 109 t.binary "mp3" | |
| 110 t.binary "png_big" | |
| 111 t.binary "png_big_dots" | |
| 112 t.binary "png_big_freq" | |
| 113 t.binary "png_sig" | |
| 114 t.binary "png_sig_freq" | |
| 115 end | |
| 116 | |
| 117 create_table "signatures" do |t| | |
| 118 t.timestamps null: false | |
| 119 t.text "name", null: false | |
| 120 t.string "source" | |
| 121 t.text "description" | |
| 122 t.string "category" | |
| 123 t.string "line_type" | |
| 124 t.integer "risk" | |
| 125 end | |
| 126 | |
| 127 create_table "signature_fp" do |t| | |
| 128 t.integer "signature_id", null: false | |
| 129 t.integer "fprint", array: true | |
| 130 end | |
| 131 | |
| 132 create_table "providers" do |t| | |
| 133 t.timestamps null: false | |
| 134 t.text "name", null: false | |
| 135 t.text "host", null: false | |
| 136 t.integer "port", null: false | |
| 137 t.text "user" | |
| 138 t.text "pass" | |
| 139 t.integer "lines", null: false, default: 1 | |
| 140 t.boolean "enabled", default: true | |
| 141 end | |
| 142 | |
| 143 add_index :jobs, :project_id | |
| 144 add_index :lines, :number | |
| 145 add_index :lines, :project_id | |
| 146 add_index :line_attributes, :line_id | |
| 147 add_index :line_attributes, :project_id | |
| 148 add_index :calls, :number | |
| 149 add_index :calls, :job_id | |
| 150 add_index :calls, :provider_id | |
| 151 add_index :call_media, :call_id | |
| 152 add_index :call_media, :project_id | |
| 153 add_index :signature_fp, :signature_id | |
| 154 end | |
| 155 | |
| 156 def down | |
| 157 remove_index :jobs, :project_id | |
| 158 remove_index :lines, :number | |
| 159 remove_index :lines, :project_id | |
| 160 remove_index :line_attributes, :line_id | |
| 161 remove_index :line_attributes, :project_id | |
| 162 remove_index :calls, :number | |
| 163 remove_index :calls, :job_id | |
| 164 remove_index :calls, :provider_id | |
| 165 remove_index :call_media, :call_id | |
| 166 remove_index :call_media, :project_id | |
| 167 remove_index :signature_fp, :signature_id | |
| 168 | |
| 169 drop_table "providers" | |
| 170 drop_table "signature_fp" | |
| 171 drop_table "signatures" | |
| 172 drop_table "call_media" | |
| 173 drop_table "calls" | |
| 174 drop_table "line_attributes" | |
| 175 drop_table "lines" | |
| 176 drop_table "jobs" | |
| 177 drop_table "projects" | |
| 178 drop_table "users" | |
| 179 drop_table "settings" | |
| 180 end | |
| 181 end |