active_record_doctor 1.5.0 → 1.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +152 -12
  3. data/lib/active_record_doctor.rb +20 -2
  4. data/lib/active_record_doctor/detectors.rb +13 -0
  5. data/lib/active_record_doctor/detectors/base.rb +64 -0
  6. data/lib/active_record_doctor/{tasks → detectors}/extraneous_indexes.rb +12 -29
  7. data/lib/active_record_doctor/detectors/incorrect_boolean_presence_validation.rb +40 -0
  8. data/lib/active_record_doctor/detectors/incorrect_dependent_option.rb +71 -0
  9. data/lib/active_record_doctor/{tasks → detectors}/missing_foreign_keys.rb +17 -35
  10. data/lib/active_record_doctor/detectors/missing_non_null_constraint.rb +60 -0
  11. data/lib/active_record_doctor/detectors/missing_presence_validation.rb +78 -0
  12. data/lib/active_record_doctor/detectors/missing_unique_indexes.rb +61 -0
  13. data/lib/active_record_doctor/detectors/undefined_table_references.rb +34 -0
  14. data/lib/active_record_doctor/detectors/unindexed_deleted_at.rb +29 -0
  15. data/lib/active_record_doctor/detectors/unindexed_foreign_keys.rb +48 -0
  16. data/lib/active_record_doctor/printers.rb +3 -1
  17. data/lib/active_record_doctor/printers/io_printer.rb +101 -26
  18. data/lib/active_record_doctor/railtie.rb +3 -1
  19. data/lib/active_record_doctor/task.rb +28 -0
  20. data/lib/active_record_doctor/version.rb +3 -1
  21. data/lib/generators/active_record_doctor/add_indexes/add_indexes_generator.rb +15 -11
  22. data/lib/tasks/active_record_doctor.rake +33 -0
  23. data/test/active_record_doctor/detectors/extraneous_indexes_test.rb +67 -0
  24. data/test/active_record_doctor/detectors/incorrect_boolean_presence_validation_test.rb +36 -0
  25. data/test/active_record_doctor/detectors/incorrect_dependent_option_test.rb +117 -0
  26. data/test/active_record_doctor/detectors/missing_foreign_keys_test.rb +24 -0
  27. data/test/active_record_doctor/detectors/missing_non_null_constraint_test.rb +102 -0
  28. data/test/active_record_doctor/detectors/missing_presence_validation_test.rb +107 -0
  29. data/test/active_record_doctor/detectors/missing_unique_indexes_test.rb +114 -0
  30. data/test/active_record_doctor/detectors/undefined_table_references_test.rb +44 -0
  31. data/test/active_record_doctor/detectors/unindexed_deleted_at_test.rb +67 -0
  32. data/test/active_record_doctor/detectors/unindexed_foreign_keys_test.rb +26 -0
  33. data/test/active_record_doctor/printers/io_printer_test.rb +23 -10
  34. data/test/model_factory.rb +78 -0
  35. data/test/setup.rb +126 -0
  36. metadata +93 -149
  37. data/Rakefile +0 -28
  38. data/lib/active_record_doctor/compatibility.rb +0 -11
  39. data/lib/active_record_doctor/tasks.rb +0 -4
  40. data/lib/active_record_doctor/tasks/undefined_table_references.rb +0 -34
  41. data/lib/active_record_doctor/tasks/unindexed_deleted_at.rb +0 -40
  42. data/lib/active_record_doctor/tasks/unindexed_foreign_keys.rb +0 -66
  43. data/lib/tasks/active_record_doctor_tasks.rake +0 -27
  44. data/test/active_record_doctor/tasks/extraneous_indexes_test.rb +0 -27
  45. data/test/active_record_doctor/tasks/missing_foreign_keys_test.rb +0 -19
  46. data/test/active_record_doctor/tasks/undefined_table_references_test.rb +0 -19
  47. data/test/active_record_doctor/tasks/unindexed_deleted_at_test.rb +0 -19
  48. data/test/active_record_doctor/tasks/unindexed_foreign_keys_test.rb +0 -19
  49. data/test/dummy/README.rdoc +0 -28
  50. data/test/dummy/Rakefile +0 -6
  51. data/test/dummy/app/assets/javascripts/application.js +0 -13
  52. data/test/dummy/app/assets/stylesheets/application.css +0 -15
  53. data/test/dummy/app/controllers/application_controller.rb +0 -5
  54. data/test/dummy/app/helpers/application_helper.rb +0 -2
  55. data/test/dummy/app/models/application_record.rb +0 -3
  56. data/test/dummy/app/models/comment.rb +0 -3
  57. data/test/dummy/app/models/contract.rb +0 -3
  58. data/test/dummy/app/models/employer.rb +0 -2
  59. data/test/dummy/app/models/profile.rb +0 -2
  60. data/test/dummy/app/models/user.rb +0 -3
  61. data/test/dummy/app/views/layouts/application.html.erb +0 -14
  62. data/test/dummy/bin/bundle +0 -3
  63. data/test/dummy/bin/rails +0 -4
  64. data/test/dummy/bin/rake +0 -4
  65. data/test/dummy/bin/setup +0 -29
  66. data/test/dummy/config.ru +0 -4
  67. data/test/dummy/config/application.rb +0 -23
  68. data/test/dummy/config/boot.rb +0 -5
  69. data/test/dummy/config/database.yml +0 -19
  70. data/test/dummy/config/database.yml.travis +0 -5
  71. data/test/dummy/config/environment.rb +0 -5
  72. data/test/dummy/config/environments/development.rb +0 -41
  73. data/test/dummy/config/environments/production.rb +0 -79
  74. data/test/dummy/config/environments/test.rb +0 -47
  75. data/test/dummy/config/initializers/assets.rb +0 -11
  76. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  77. data/test/dummy/config/initializers/cookies_serializer.rb +0 -3
  78. data/test/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  79. data/test/dummy/config/initializers/inflections.rb +0 -16
  80. data/test/dummy/config/initializers/mime_types.rb +0 -4
  81. data/test/dummy/config/initializers/session_store.rb +0 -3
  82. data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
  83. data/test/dummy/config/locales/en.yml +0 -23
  84. data/test/dummy/config/routes.rb +0 -56
  85. data/test/dummy/config/secrets.yml +0 -22
  86. data/test/dummy/db/migrate/20160213101213_create_employers.rb +0 -15
  87. data/test/dummy/db/migrate/20160213101221_create_users.rb +0 -23
  88. data/test/dummy/db/migrate/20160213101232_create_profiles.rb +0 -15
  89. data/test/dummy/db/migrate/20160604081452_create_comments.rb +0 -11
  90. data/test/dummy/db/migrate/base_migration.rb +0 -5
  91. data/test/dummy/db/schema.rb +0 -68
  92. data/test/dummy/log/development.log +0 -532
  93. data/test/dummy/log/test.log +0 -2699
  94. data/test/dummy/public/404.html +0 -67
  95. data/test/dummy/public/422.html +0 -67
  96. data/test/dummy/public/500.html +0 -66
  97. data/test/dummy/public/favicon.ico +0 -0
  98. data/test/support/spy_printer.rb +0 -52
  99. data/test/test_helper.rb +0 -20
@@ -1,22 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- # Your secret key is used for verifying the integrity of signed cookies.
4
- # If you change this key, all old signed cookies will become invalid!
5
-
6
- # Make sure the secret is at least 30 characters and all random,
7
- # no regular words or you'll be exposed to dictionary attacks.
8
- # You can use `rake secret` to generate a secure secret key.
9
-
10
- # Make sure the secrets in this file are kept private
11
- # if you're sharing your code publicly.
12
-
13
- development:
14
- secret_key_base: fc56218af9682e85721022fdc87d5c86741c69594bfef352fd91f60e03f08b41ea4925b31631f9660c7a2e55bb2fa5ad23ce4f44a11e6c3d3c9bf9fbc9d239d7
15
-
16
- test:
17
- secret_key_base: 902b4f59d94fd28bf86e21b14651a1f420900d6bc2339329fa4d448d193eafe4925586b7759889e31a60fb2d21462dc35ecd0b153f44fa5cca58e3dfd08f28d6
18
-
19
- # Do not keep production secrets in the repository,
20
- # instead read values from the environment.
21
- production:
22
- secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
@@ -1,15 +0,0 @@
1
- require_relative 'base_migration'
2
-
3
- class CreateEmployers < BaseMigration
4
- def change
5
- create_table :employers do |t|
6
- t.string :name
7
- t.datetime :deleted_at
8
-
9
- t.timestamps null: false
10
- end
11
-
12
- add_index :employers, :id, where: 'deleted_at IS NULL'
13
- add_index :employers, :name, where: 'deleted_at IS NULL'
14
- end
15
- end
@@ -1,23 +0,0 @@
1
- require_relative 'base_migration'
2
-
3
- class CreateUsers < BaseMigration
4
- def change
5
- create_table :users do |t|
6
- t.string :email
7
- t.string :first_name
8
- t.string :last_name
9
- t.references :profile, foreign_key: false
10
- t.references :employer, foreign_key: true
11
- t.string :country_code, null: false
12
-
13
- t.timestamps null: false
14
- end
15
- add_index :users, [:last_name, :first_name, :email]
16
- add_index :users, [:last_name, :first_name]
17
- add_index :users, [:last_name, :first_name], unique: true, name: :unique_index_on_users_last_name_and_first_name
18
- add_index :users, :last_name
19
- add_index :users, :email
20
- add_index :users, :email, unique: true, name: :unique_index_on_users_email
21
- add_index :users, [:employer_id, :country_code]
22
- end
23
- end
@@ -1,15 +0,0 @@
1
- require_relative 'base_migration'
2
-
3
- class CreateProfiles < BaseMigration
4
- def change
5
- create_table :profiles do |t|
6
- t.string :first_name
7
- t.string :last_name
8
- t.datetime :deleted_at
9
-
10
- t.timestamps null: false
11
- end
12
-
13
- add_index :profiles, [:first_name, :last_name]
14
- end
15
- end
@@ -1,11 +0,0 @@
1
- require_relative 'base_migration'
2
-
3
- class CreateComments < BaseMigration
4
- def change
5
- create_table :comments do |t|
6
- t.references :commentable, polymorphic: true, index: true
7
-
8
- t.timestamps null: false
9
- end
10
- end
11
- end
@@ -1,5 +0,0 @@
1
- if ActiveRecord::VERSION::MAJOR >= 5 && ActiveRecord::VERSION::MINOR >= 1
2
- BaseMigration = ActiveRecord::Migration[4.2]
3
- else
4
- BaseMigration = ActiveRecord::Migration
5
- end
@@ -1,68 +0,0 @@
1
- # encoding: UTF-8
2
- # This file is auto-generated from the current state of the database. Instead
3
- # of editing this file, please use the migrations feature of Active Record to
4
- # incrementally modify your database, and then regenerate this schema definition.
5
- #
6
- # Note that this schema.rb definition is the authoritative source for your
7
- # database schema. If you need to create the application database on another
8
- # system, you should be using db:schema:load, not running all the migrations
9
- # from scratch. The latter is a flawed and unsustainable approach (the more migrations
10
- # you'll amass, the slower it'll run and the greater likelihood for issues).
11
- #
12
- # It's strongly recommended that you check this file into your version control system.
13
-
14
- ActiveRecord::Schema.define(version: 20160604081452) do
15
-
16
- # These are extensions that must be enabled in order to support this database
17
- enable_extension "plpgsql"
18
-
19
- create_table "comments", force: :cascade do |t|
20
- t.integer "commentable_id"
21
- t.string "commentable_type"
22
- t.datetime "created_at", null: false
23
- t.datetime "updated_at", null: false
24
- end
25
-
26
- add_index "comments", ["commentable_type", "commentable_id"], name: "index_comments_on_commentable_type_and_commentable_id", using: :btree
27
-
28
- create_table "employers", force: :cascade do |t|
29
- t.string "name"
30
- t.datetime "deleted_at"
31
- t.datetime "created_at", null: false
32
- t.datetime "updated_at", null: false
33
- end
34
-
35
- add_index "employers", ["id"], name: "index_employers_on_id", where: "(deleted_at IS NULL)", using: :btree
36
- add_index "employers", ["name"], name: "index_employers_on_name", where: "(deleted_at IS NULL)", using: :btree
37
-
38
- create_table "profiles", force: :cascade do |t|
39
- t.string "first_name"
40
- t.string "last_name"
41
- t.datetime "deleted_at"
42
- t.datetime "created_at", null: false
43
- t.datetime "updated_at", null: false
44
- end
45
-
46
- add_index "profiles", ["first_name", "last_name"], name: "index_profiles_on_first_name_and_last_name", using: :btree
47
-
48
- create_table "users", force: :cascade do |t|
49
- t.string "email"
50
- t.string "first_name"
51
- t.string "last_name"
52
- t.integer "profile_id"
53
- t.integer "employer_id"
54
- t.string "country_code", null: false
55
- t.datetime "created_at", null: false
56
- t.datetime "updated_at", null: false
57
- end
58
-
59
- add_index "users", ["email"], name: "index_users_on_email", using: :btree
60
- add_index "users", ["email"], name: "unique_index_on_users_email", unique: true, using: :btree
61
- add_index "users", ["employer_id", "country_code"], name: "index_users_on_employer_id_and_country_code", using: :btree
62
- add_index "users", ["last_name", "first_name", "email"], name: "index_users_on_last_name_and_first_name_and_email", using: :btree
63
- add_index "users", ["last_name", "first_name"], name: "index_users_on_last_name_and_first_name", using: :btree
64
- add_index "users", ["last_name", "first_name"], name: "unique_index_on_users_last_name_and_first_name", unique: true, using: :btree
65
- add_index "users", ["last_name"], name: "index_users_on_last_name", using: :btree
66
-
67
- add_foreign_key "users", "employers"
68
- end
@@ -1,532 +0,0 @@
1
-  (25.1ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL) 
2
-  (19.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
3
- ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations".* FROM "schema_migrations"
4
- Migrating to CreateEmployers (20160213101213)
5
-  (0.1ms) BEGIN
6
-  (35.9ms) CREATE TABLE "employers" ("id" serial primary key, "name" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
7
-  (10.4ms) CREATE INDEX "index_employers_on_id" ON "employers" ("id")
8
- SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160213101213"]]
9
-  (8.4ms) COMMIT
10
- Migrating to CreateUsers (20160213101221)
11
-  (0.1ms) BEGIN
12
-  (35.2ms) CREATE TABLE "users" ("id" serial primary key, "email" character varying, "first_name" character varying, "last_name" character varying, "profile_id" integer, "employer_id" integer, "country_code" character varying NOT NULL, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
13
-  (1.0ms) ALTER TABLE "users" ADD CONSTRAINT "fk_rails_e0dbdd604c"
14
- FOREIGN KEY ("employer_id")
15
- REFERENCES "employers" ("id")
16
- 
17
-  (10.4ms) CREATE INDEX "index_users_on_last_name_and_first_name_and_email" ON "users" ("last_name", "first_name", "email")
18
-  (4.4ms) CREATE INDEX "index_users_on_last_name_and_first_name" ON "users" ("last_name", "first_name")
19
-  (19.2ms) CREATE UNIQUE INDEX "unique_index_on_users_last_name_and_first_name" ON "users" ("last_name", "first_name")
20
-  (15.8ms) CREATE INDEX "index_users_on_last_name" ON "users" ("last_name")
21
-  (10.1ms) CREATE INDEX "index_users_on_email" ON "users" ("email")
22
-  (10.7ms) CREATE UNIQUE INDEX "unique_index_on_users_email" ON "users" ("email")
23
-  (17.0ms) CREATE INDEX "index_users_on_employer_id_and_country_code" ON "users" ("employer_id", "country_code")
24
- SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160213101221"]]
25
-  (7.6ms) COMMIT
26
- Migrating to CreateProfiles (20160213101232)
27
-  (0.1ms) BEGIN
28
-  (21.0ms) CREATE TABLE "profiles" ("id" serial primary key, "first_name" character varying, "last_name" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
29
- SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160213101232"]]
30
-  (8.0ms) COMMIT
31
- Migrating to CreateComments (20160604081452)
32
-  (0.1ms) BEGIN
33
-  (37.1ms) CREATE TABLE "comments" ("id" serial primary key, "commentable_id" integer, "commentable_type" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
34
-  (9.9ms) CREATE INDEX "index_comments_on_commentable_type_and_commentable_id" ON "comments" ("commentable_type", "commentable_id")
35
- SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160604081452"]]
36
-  (7.9ms) COMMIT
37
- ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
38
-  (1.4ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
39
- FROM pg_constraint c
40
- JOIN pg_class t1 ON c.conrelid = t1.oid
41
- JOIN pg_class t2 ON c.confrelid = t2.oid
42
- JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
43
- JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
44
- JOIN pg_namespace t3 ON c.connamespace = t3.oid
45
- WHERE c.contype = 'f'
46
- AND t1.relname = 'comments'
47
- AND t3.nspname = ANY (current_schemas(false))
48
- ORDER BY c.conname
49
- 
50
-  (1.1ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
51
- FROM pg_constraint c
52
- JOIN pg_class t1 ON c.conrelid = t1.oid
53
- JOIN pg_class t2 ON c.confrelid = t2.oid
54
- JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
55
- JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
56
- JOIN pg_namespace t3 ON c.connamespace = t3.oid
57
- WHERE c.contype = 'f'
58
- AND t1.relname = 'employers'
59
- AND t3.nspname = ANY (current_schemas(false))
60
- ORDER BY c.conname
61
-
62
-  (1.2ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
63
- FROM pg_constraint c
64
- JOIN pg_class t1 ON c.conrelid = t1.oid
65
- JOIN pg_class t2 ON c.confrelid = t2.oid
66
- JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
67
- JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
68
- JOIN pg_namespace t3 ON c.connamespace = t3.oid
69
- WHERE c.contype = 'f'
70
- AND t1.relname = 'profiles'
71
- AND t3.nspname = ANY (current_schemas(false))
72
- ORDER BY c.conname
73
- 
74
-  (1.3ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
75
- FROM pg_constraint c
76
- JOIN pg_class t1 ON c.conrelid = t1.oid
77
- JOIN pg_class t2 ON c.confrelid = t2.oid
78
- JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
79
- JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
80
- JOIN pg_namespace t3 ON c.connamespace = t3.oid
81
- WHERE c.contype = 'f'
82
- AND t1.relname = 'users'
83
- AND t3.nspname = ANY (current_schemas(false))
84
- ORDER BY c.conname
85
-
86
- SQL (0.1ms) CREATE EXTENSION IF NOT EXISTS "plpgsql"
87
-  (31.0ms) CREATE TABLE "comments" ("id" serial primary key, "commentable_id" integer, "commentable_type" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
88
-  (17.6ms) CREATE INDEX "index_comments_on_commentable_type_and_commentable_id" ON "comments" USING btree ("commentable_type", "commentable_id")
89
-  (34.4ms) CREATE TABLE "employers" ("id" serial primary key, "name" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
90
-  (12.9ms) CREATE INDEX "index_employers_on_id" ON "employers" USING btree ("id")
91
-  (31.9ms) CREATE TABLE "profiles" ("id" serial primary key, "first_name" character varying, "last_name" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
92
-  (35.7ms) CREATE TABLE "users" ("id" serial primary key, "email" character varying, "first_name" character varying, "last_name" character varying, "profile_id" integer, "employer_id" integer, "country_code" character varying NOT NULL, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
93
-  (18.0ms) CREATE INDEX "index_users_on_email" ON "users" USING btree ("email")
94
-  (18.2ms) CREATE UNIQUE INDEX "unique_index_on_users_email" ON "users" USING btree ("email")
95
-  (18.2ms) CREATE INDEX "index_users_on_employer_id_and_country_code" ON "users" USING btree ("employer_id", "country_code")
96
-  (12.9ms) CREATE INDEX "index_users_on_last_name_and_first_name_and_email" ON "users" USING btree ("last_name", "first_name", "email")
97
-  (23.8ms) CREATE INDEX "index_users_on_last_name_and_first_name" ON "users" USING btree ("last_name", "first_name")
98
-  (21.1ms) CREATE UNIQUE INDEX "unique_index_on_users_last_name_and_first_name" ON "users" USING btree ("last_name", "first_name")
99
-  (24.6ms) CREATE INDEX "index_users_on_last_name" ON "users" USING btree ("last_name")
100
-  (9.2ms) ALTER TABLE "users" ADD CONSTRAINT "fk_rails_e0dbdd604c"
101
- FOREIGN KEY ("employer_id")
102
- REFERENCES "employers" ("id")
103
- 
104
-  (26.4ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL)
105
-  (26.6ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
106
-  (0.3ms) SELECT version FROM "schema_migrations"
107
-  (2.1ms) INSERT INTO "schema_migrations" (version) VALUES ('20160604081452')
108
-  (7.6ms) INSERT INTO "schema_migrations" (version) VALUES ('20160213101213')
109
-  (7.5ms) INSERT INTO "schema_migrations" (version) VALUES ('20160213101232')
110
-  (2.1ms) INSERT INTO "schema_migrations" (version) VALUES ('20160213101221')
111
- SQL (0.1ms) CREATE EXTENSION IF NOT EXISTS "plpgsql"
112
-  (57.5ms) CREATE TABLE "comments" ("id" serial primary key, "commentable_id" integer, "commentable_type" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
113
-  (20.9ms) CREATE INDEX "index_comments_on_commentable_type_and_commentable_id" ON "comments" USING btree ("commentable_type", "commentable_id")
114
-  (46.0ms) CREATE TABLE "employers" ("id" serial primary key, "name" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
115
-  (12.2ms) CREATE INDEX "index_employers_on_id" ON "employers" USING btree ("id")
116
-  (29.4ms) CREATE TABLE "profiles" ("id" serial primary key, "first_name" character varying, "last_name" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
117
-  (32.3ms) CREATE TABLE "users" ("id" serial primary key, "email" character varying, "first_name" character varying, "last_name" character varying, "profile_id" integer, "employer_id" integer, "country_code" character varying NOT NULL, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
118
-  (17.2ms) CREATE INDEX "index_users_on_email" ON "users" USING btree ("email")
119
-  (14.7ms) CREATE UNIQUE INDEX "unique_index_on_users_email" ON "users" USING btree ("email")
120
-  (22.9ms) CREATE INDEX "index_users_on_employer_id_and_country_code" ON "users" USING btree ("employer_id", "country_code")
121
-  (17.8ms) CREATE INDEX "index_users_on_last_name_and_first_name_and_email" ON "users" USING btree ("last_name", "first_name", "email")
122
-  (17.3ms) CREATE INDEX "index_users_on_last_name_and_first_name" ON "users" USING btree ("last_name", "first_name")
123
-  (22.9ms) CREATE UNIQUE INDEX "unique_index_on_users_last_name_and_first_name" ON "users" USING btree ("last_name", "first_name")
124
-  (11.8ms) CREATE INDEX "index_users_on_last_name" ON "users" USING btree ("last_name")
125
-  (8.5ms) ALTER TABLE "users" ADD CONSTRAINT "fk_rails_e0dbdd604c"
126
- FOREIGN KEY ("employer_id")
127
- REFERENCES "employers" ("id")
128
- 
129
-  (21.3ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL)
130
-  (20.4ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
131
-  (0.2ms) SELECT version FROM "schema_migrations"
132
-  (4.9ms) INSERT INTO "schema_migrations" (version) VALUES ('20160604081452')
133
-  (7.6ms) INSERT INTO "schema_migrations" (version) VALUES ('20160213101213')
134
-  (7.3ms) INSERT INTO "schema_migrations" (version) VALUES ('20160213101232')
135
-  (1.9ms) INSERT INTO "schema_migrations" (version) VALUES ('20160213101221')
136
- ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations".* FROM "schema_migrations"
137
- SQL (0.2ms) CREATE EXTENSION IF NOT EXISTS "plpgsql"
138
-  (67.5ms) CREATE TABLE "comments" ("id" serial primary key, "commentable_id" integer, "commentable_type" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
139
-  (16.0ms) CREATE INDEX "index_comments_on_commentable_type_and_commentable_id" ON "comments" USING btree ("commentable_type", "commentable_id")
140
-  (41.3ms) CREATE TABLE "employers" ("id" serial primary key, "name" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
141
-  (18.7ms) CREATE INDEX "index_employers_on_id" ON "employers" USING btree ("id")
142
-  (55.8ms) CREATE TABLE "profiles" ("id" serial primary key, "first_name" character varying, "last_name" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
143
-  (38.8ms) CREATE TABLE "users" ("id" serial primary key, "email" character varying, "first_name" character varying, "last_name" character varying, "profile_id" integer, "employer_id" integer, "country_code" character varying NOT NULL, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
144
-  (18.2ms) CREATE INDEX "index_users_on_email" ON "users" USING btree ("email")
145
-  (18.4ms) CREATE UNIQUE INDEX "unique_index_on_users_email" ON "users" USING btree ("email")
146
-  (18.3ms) CREATE INDEX "index_users_on_employer_id_and_country_code" ON "users" USING btree ("employer_id", "country_code")
147
-  (21.4ms) CREATE INDEX "index_users_on_last_name_and_first_name_and_email" ON "users" USING btree ("last_name", "first_name", "email")
148
-  (12.6ms) CREATE INDEX "index_users_on_last_name_and_first_name" ON "users" USING btree ("last_name", "first_name")
149
-  (18.4ms) CREATE UNIQUE INDEX "unique_index_on_users_last_name_and_first_name" ON "users" USING btree ("last_name", "first_name")
150
-  (21.3ms) CREATE INDEX "index_users_on_last_name" ON "users" USING btree ("last_name")
151
-  (9.1ms) ALTER TABLE "users" ADD CONSTRAINT "fk_rails_e0dbdd604c"
152
- FOREIGN KEY ("employer_id")
153
- REFERENCES "employers" ("id")
154
- 
155
-  (27.5ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL)
156
-  (33.9ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
157
-  (0.3ms) SELECT version FROM "schema_migrations"
158
-  (7.7ms) INSERT INTO "schema_migrations" (version) VALUES ('20160604081452')
159
-  (7.7ms) INSERT INTO "schema_migrations" (version) VALUES ('20160213101213')
160
-  (7.6ms) INSERT INTO "schema_migrations" (version) VALUES ('20160213101232')
161
-  (2.0ms) INSERT INTO "schema_migrations" (version) VALUES ('20160213101221')
162
- SQL (0.1ms) CREATE EXTENSION IF NOT EXISTS "plpgsql"
163
-  (51.2ms) CREATE TABLE "comments" ("id" serial primary key, "commentable_id" integer, "commentable_type" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
164
-  (21.0ms) CREATE INDEX "index_comments_on_commentable_type_and_commentable_id" ON "comments" USING btree ("commentable_type", "commentable_id")
165
-  (29.1ms) CREATE TABLE "employers" ("id" serial primary key, "name" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
166
-  (18.5ms) CREATE INDEX "index_employers_on_id" ON "employers" USING btree ("id")
167
-  (35.1ms) CREATE TABLE "profiles" ("id" serial primary key, "first_name" character varying, "last_name" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
168
-  (29.1ms) CREATE TABLE "users" ("id" serial primary key, "email" character varying, "first_name" character varying, "last_name" character varying, "profile_id" integer, "employer_id" integer, "country_code" character varying NOT NULL, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
169
-  (20.7ms) CREATE INDEX "index_users_on_email" ON "users" USING btree ("email")
170
-  (23.1ms) CREATE UNIQUE INDEX "unique_index_on_users_email" ON "users" USING btree ("email")
171
-  (28.7ms) CREATE INDEX "index_users_on_employer_id_and_country_code" ON "users" USING btree ("employer_id", "country_code")
172
-  (24.1ms) CREATE INDEX "index_users_on_last_name_and_first_name_and_email" ON "users" USING btree ("last_name", "first_name", "email")
173
-  (23.8ms) CREATE INDEX "index_users_on_last_name_and_first_name" ON "users" USING btree ("last_name", "first_name")
174
-  (24.2ms) CREATE UNIQUE INDEX "unique_index_on_users_last_name_and_first_name" ON "users" USING btree ("last_name", "first_name")
175
-  (18.0ms) CREATE INDEX "index_users_on_last_name" ON "users" USING btree ("last_name")
176
-  (9.3ms) ALTER TABLE "users" ADD CONSTRAINT "fk_rails_e0dbdd604c"
177
- FOREIGN KEY ("employer_id")
178
- REFERENCES "employers" ("id")
179
- 
180
-  (23.9ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL)
181
-  (12.4ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
182
-  (0.3ms) SELECT version FROM "schema_migrations"
183
-  (7.6ms) INSERT INTO "schema_migrations" (version) VALUES ('20160604081452')
184
-  (2.1ms) INSERT INTO "schema_migrations" (version) VALUES ('20160213101213')
185
-  (2.1ms) INSERT INTO "schema_migrations" (version) VALUES ('20160213101232')
186
-  (7.7ms) INSERT INTO "schema_migrations" (version) VALUES ('20160213101221')
187
- ActiveRecord::SchemaMigration Load (0.3ms) SELECT "schema_migrations".* FROM "schema_migrations"
188
-  (49.4ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL) 
189
-  (22.0ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
190
- ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations".* FROM "schema_migrations"
191
- Migrating to CreateEmployers (20160213101213)
192
-  (0.1ms) BEGIN
193
-  (28.2ms) CREATE TABLE "employers" ("id" serial primary key, "name" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
194
-  (10.7ms) CREATE INDEX "index_employers_on_id" ON "employers" ("id")
195
- SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160213101213"]]
196
-  (15.0ms) COMMIT
197
- Migrating to CreateUsers (20160213101221)
198
-  (0.2ms) BEGIN
199
-  (34.9ms) CREATE TABLE "users" ("id" serial primary key, "email" character varying, "first_name" character varying, "last_name" character varying, "profile_id" integer, "employer_id" integer, "country_code" character varying NOT NULL, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
200
-  (0.8ms) ALTER TABLE "users" ADD CONSTRAINT "fk_rails_e0dbdd604c"
201
- FOREIGN KEY ("employer_id")
202
- REFERENCES "employers" ("id")
203
- 
204
-  (20.2ms) CREATE INDEX "index_users_on_last_name_and_first_name_and_email" ON "users" ("last_name", "first_name", "email")
205
-  (16.5ms) CREATE INDEX "index_users_on_last_name_and_first_name" ON "users" ("last_name", "first_name")
206
-  (16.2ms) CREATE UNIQUE INDEX "unique_index_on_users_last_name_and_first_name" ON "users" ("last_name", "first_name")
207
-  (19.7ms) CREATE INDEX "index_users_on_last_name" ON "users" ("last_name")
208
-  (16.6ms) CREATE INDEX "index_users_on_email" ON "users" ("email")
209
-  (22.2ms) CREATE UNIQUE INDEX "unique_index_on_users_email" ON "users" ("email")
210
-  (10.7ms) CREATE INDEX "index_users_on_employer_id_and_country_code" ON "users" ("employer_id", "country_code")
211
- SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160213101221"]]
212
-  (8.0ms) COMMIT
213
- Migrating to CreateProfiles (20160213101232)
214
-  (0.2ms) BEGIN
215
-  (30.6ms) CREATE TABLE "profiles" ("id" serial primary key, "first_name" character varying, "last_name" character varying, "deleted_at" timestamp, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
216
- SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160213101232"]]
217
-  (8.4ms) COMMIT
218
- Migrating to CreateComments (20160604081452)
219
-  (0.1ms) BEGIN
220
-  (44.5ms) CREATE TABLE "comments" ("id" serial primary key, "commentable_id" integer, "commentable_type" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
221
-  (13.7ms) CREATE INDEX "index_comments_on_commentable_type_and_commentable_id" ON "comments" ("commentable_type", "commentable_id")
222
- SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160604081452"]]
223
-  (7.6ms) COMMIT
224
- ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations".* FROM "schema_migrations"
225
-  (1.3ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
226
- FROM pg_constraint c
227
- JOIN pg_class t1 ON c.conrelid = t1.oid
228
- JOIN pg_class t2 ON c.confrelid = t2.oid
229
- JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
230
- JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
231
- JOIN pg_namespace t3 ON c.connamespace = t3.oid
232
- WHERE c.contype = 'f'
233
- AND t1.relname = 'comments'
234
- AND t3.nspname = ANY (current_schemas(false))
235
- ORDER BY c.conname
236
- 
237
-  (1.1ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
238
- FROM pg_constraint c
239
- JOIN pg_class t1 ON c.conrelid = t1.oid
240
- JOIN pg_class t2 ON c.confrelid = t2.oid
241
- JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
242
- JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
243
- JOIN pg_namespace t3 ON c.connamespace = t3.oid
244
- WHERE c.contype = 'f'
245
- AND t1.relname = 'employers'
246
- AND t3.nspname = ANY (current_schemas(false))
247
- ORDER BY c.conname
248
-
249
-  (1.2ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
250
- FROM pg_constraint c
251
- JOIN pg_class t1 ON c.conrelid = t1.oid
252
- JOIN pg_class t2 ON c.confrelid = t2.oid
253
- JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
254
- JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
255
- JOIN pg_namespace t3 ON c.connamespace = t3.oid
256
- WHERE c.contype = 'f'
257
- AND t1.relname = 'profiles'
258
- AND t3.nspname = ANY (current_schemas(false))
259
- ORDER BY c.conname
260
- 
261
-  (1.3ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
262
- FROM pg_constraint c
263
- JOIN pg_class t1 ON c.conrelid = t1.oid
264
- JOIN pg_class t2 ON c.confrelid = t2.oid
265
- JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
266
- JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
267
- JOIN pg_namespace t3 ON c.connamespace = t3.oid
268
- WHERE c.contype = 'f'
269
- AND t1.relname = 'users'
270
- AND t3.nspname = ANY (current_schemas(false))
271
- ORDER BY c.conname
272
-
273
-  (33.8ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL) 
274
-  (18.4ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
275
- ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations".* FROM "schema_migrations"
276
- Migrating to CreateEmployers (20160213101213)
277
-  (0.1ms) BEGIN
278
-  (26.3ms) CREATE TABLE "employers" ("id" serial primary key, "name" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
279
-  (18.7ms) CREATE INDEX "index_employers_on_id" ON "employers" ("id")
280
- SQL (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160213101213"]]
281
-  (19.9ms) COMMIT
282
- Migrating to CreateUsers (20160213101221)
283
-  (0.2ms) BEGIN
284
-  (34.0ms) CREATE TABLE "users" ("id" serial primary key, "email" character varying, "first_name" character varying, "last_name" character varying, "profile_id" integer, "employer_id" integer, "country_code" character varying NOT NULL, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
285
-  (1.4ms) ALTER TABLE "users" ADD CONSTRAINT "fk_rails_e0dbdd604c"
286
- FOREIGN KEY ("employer_id")
287
- REFERENCES "employers" ("id")
288
- 
289
-  (22.6ms) CREATE INDEX "index_users_on_last_name_and_first_name_and_email" ON "users" ("last_name", "first_name", "email")
290
-  (11.1ms) CREATE INDEX "index_users_on_last_name_and_first_name" ON "users" ("last_name", "first_name")
291
-  (10.7ms) CREATE UNIQUE INDEX "unique_index_on_users_last_name_and_first_name" ON "users" ("last_name", "first_name")
292
-  (17.1ms) CREATE INDEX "index_users_on_last_name" ON "users" ("last_name")
293
-  (11.2ms) CREATE INDEX "index_users_on_email" ON "users" ("email")
294
-  (15.9ms) CREATE UNIQUE INDEX "unique_index_on_users_email" ON "users" ("email")
295
-  (16.5ms) CREATE INDEX "index_users_on_employer_id_and_country_code" ON "users" ("employer_id", "country_code")
296
- SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160213101221"]]
297
-  (8.9ms) COMMIT
298
- Migrating to CreateProfiles (20160213101232)
299
-  (0.2ms) BEGIN
300
-  (27.5ms) CREATE TABLE "profiles" ("id" serial primary key, "first_name" character varying, "last_name" character varying, "deleted_at" timestamp, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
301
-  (19.9ms) CREATE INDEX "index_profiles_on_first_name_and_last_name" ON "profiles" ("first_name", "last_name")
302
- SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160213101232"]]
303
-  (8.1ms) COMMIT
304
- Migrating to CreateComments (20160604081452)
305
-  (0.1ms) BEGIN
306
-  (35.9ms) CREATE TABLE "comments" ("id" serial primary key, "commentable_id" integer, "commentable_type" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
307
-  (13.4ms) CREATE INDEX "index_comments_on_commentable_type_and_commentable_id" ON "comments" ("commentable_type", "commentable_id")
308
- SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160604081452"]]
309
-  (2.6ms) COMMIT
310
- ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
311
-  (1.6ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
312
- FROM pg_constraint c
313
- JOIN pg_class t1 ON c.conrelid = t1.oid
314
- JOIN pg_class t2 ON c.confrelid = t2.oid
315
- JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
316
- JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
317
- JOIN pg_namespace t3 ON c.connamespace = t3.oid
318
- WHERE c.contype = 'f'
319
- AND t1.relname = 'comments'
320
- AND t3.nspname = ANY (current_schemas(false))
321
- ORDER BY c.conname
322
-
323
-  (1.4ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
324
- FROM pg_constraint c
325
- JOIN pg_class t1 ON c.conrelid = t1.oid
326
- JOIN pg_class t2 ON c.confrelid = t2.oid
327
- JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
328
- JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
329
- JOIN pg_namespace t3 ON c.connamespace = t3.oid
330
- WHERE c.contype = 'f'
331
- AND t1.relname = 'employers'
332
- AND t3.nspname = ANY (current_schemas(false))
333
- ORDER BY c.conname
334
- 
335
-  (1.5ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
336
- FROM pg_constraint c
337
- JOIN pg_class t1 ON c.conrelid = t1.oid
338
- JOIN pg_class t2 ON c.confrelid = t2.oid
339
- JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
340
- JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
341
- JOIN pg_namespace t3 ON c.connamespace = t3.oid
342
- WHERE c.contype = 'f'
343
- AND t1.relname = 'profiles'
344
- AND t3.nspname = ANY (current_schemas(false))
345
- ORDER BY c.conname
346
-
347
-  (1.6ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
348
- FROM pg_constraint c
349
- JOIN pg_class t1 ON c.conrelid = t1.oid
350
- JOIN pg_class t2 ON c.confrelid = t2.oid
351
- JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
352
- JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
353
- JOIN pg_namespace t3 ON c.connamespace = t3.oid
354
- WHERE c.contype = 'f'
355
- AND t1.relname = 'users'
356
- AND t3.nspname = ANY (current_schemas(false))
357
- ORDER BY c.conname
358
- 
359
-  (24.1ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL) 
360
-  (13.0ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
361
- ActiveRecord::SchemaMigration Load (0.3ms) SELECT "schema_migrations".* FROM "schema_migrations"
362
- Migrating to CreateEmployers (20160213101213)
363
-  (0.1ms) BEGIN
364
-  (34.6ms) CREATE TABLE "employers" ("id" serial primary key, "name" character varying, "deleted_at" timestamp, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
365
-  (14.1ms) CREATE INDEX "index_employers_on_id" ON "employers" ("id")
366
-  (19.3ms) CREATE INDEX "index_employers_on_name" ON "employers" ("name") WHERE deleted_at IS NULL
367
- SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160213101213"]]
368
-  (12.3ms) COMMIT
369
- Migrating to CreateUsers (20160213101221)
370
-  (0.1ms) BEGIN
371
-  (31.0ms) CREATE TABLE "users" ("id" serial primary key, "email" character varying, "first_name" character varying, "last_name" character varying, "profile_id" integer, "employer_id" integer, "country_code" character varying NOT NULL, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
372
-  (1.3ms) ALTER TABLE "users" ADD CONSTRAINT "fk_rails_e0dbdd604c"
373
- FOREIGN KEY ("employer_id")
374
- REFERENCES "employers" ("id")
375
-
376
-  (16.3ms) CREATE INDEX "index_users_on_last_name_and_first_name_and_email" ON "users" ("last_name", "first_name", "email")
377
-  (10.3ms) CREATE INDEX "index_users_on_last_name_and_first_name" ON "users" ("last_name", "first_name")
378
-  (23.0ms) CREATE UNIQUE INDEX "unique_index_on_users_last_name_and_first_name" ON "users" ("last_name", "first_name")
379
-  (19.1ms) CREATE INDEX "index_users_on_last_name" ON "users" ("last_name")
380
-  (10.5ms) CREATE INDEX "index_users_on_email" ON "users" ("email")
381
-  (15.8ms) CREATE UNIQUE INDEX "unique_index_on_users_email" ON "users" ("email")
382
-  (20.0ms) CREATE INDEX "index_users_on_employer_id_and_country_code" ON "users" ("employer_id", "country_code")
383
- SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160213101221"]]
384
-  (8.3ms) COMMIT
385
- Migrating to CreateProfiles (20160213101232)
386
-  (0.2ms) BEGIN
387
-  (28.0ms) CREATE TABLE "profiles" ("id" serial primary key, "first_name" character varying, "last_name" character varying, "deleted_at" timestamp, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
388
-  (18.9ms) CREATE INDEX "index_profiles_on_first_name_and_last_name" ON "profiles" ("first_name", "last_name")
389
- SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160213101232"]]
390
-  (11.4ms) COMMIT
391
- Migrating to CreateComments (20160604081452)
392
-  (0.2ms) BEGIN
393
-  (22.1ms) CREATE TABLE "comments" ("id" serial primary key, "commentable_id" integer, "commentable_type" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
394
-  (16.7ms) CREATE INDEX "index_comments_on_commentable_type_and_commentable_id" ON "comments" ("commentable_type", "commentable_id")
395
- SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160604081452"]]
396
-  (2.1ms) COMMIT
397
- ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations".* FROM "schema_migrations"
398
-  (1.6ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
399
- FROM pg_constraint c
400
- JOIN pg_class t1 ON c.conrelid = t1.oid
401
- JOIN pg_class t2 ON c.confrelid = t2.oid
402
- JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
403
- JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
404
- JOIN pg_namespace t3 ON c.connamespace = t3.oid
405
- WHERE c.contype = 'f'
406
- AND t1.relname = 'comments'
407
- AND t3.nspname = ANY (current_schemas(false))
408
- ORDER BY c.conname
409
- 
410
-  (1.4ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
411
- FROM pg_constraint c
412
- JOIN pg_class t1 ON c.conrelid = t1.oid
413
- JOIN pg_class t2 ON c.confrelid = t2.oid
414
- JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
415
- JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
416
- JOIN pg_namespace t3 ON c.connamespace = t3.oid
417
- WHERE c.contype = 'f'
418
- AND t1.relname = 'employers'
419
- AND t3.nspname = ANY (current_schemas(false))
420
- ORDER BY c.conname
421
-
422
-  (1.5ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
423
- FROM pg_constraint c
424
- JOIN pg_class t1 ON c.conrelid = t1.oid
425
- JOIN pg_class t2 ON c.confrelid = t2.oid
426
- JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
427
- JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
428
- JOIN pg_namespace t3 ON c.connamespace = t3.oid
429
- WHERE c.contype = 'f'
430
- AND t1.relname = 'profiles'
431
- AND t3.nspname = ANY (current_schemas(false))
432
- ORDER BY c.conname
433
- 
434
-  (1.6ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
435
- FROM pg_constraint c
436
- JOIN pg_class t1 ON c.conrelid = t1.oid
437
- JOIN pg_class t2 ON c.confrelid = t2.oid
438
- JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
439
- JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
440
- JOIN pg_namespace t3 ON c.connamespace = t3.oid
441
- WHERE c.contype = 'f'
442
- AND t1.relname = 'users'
443
- AND t3.nspname = ANY (current_schemas(false))
444
- ORDER BY c.conname
445
-
446
-  (45.0ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL) 
447
-  (36.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
448
- ActiveRecord::SchemaMigration Load (0.3ms) SELECT "schema_migrations".* FROM "schema_migrations"
449
- Migrating to CreateEmployers (20160213101213)
450
-  (0.1ms) BEGIN
451
-  (23.3ms) CREATE TABLE "employers" ("id" serial primary key, "name" character varying, "deleted_at" timestamp, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
452
-  (18.6ms) CREATE INDEX "index_employers_on_id" ON "employers" ("id") WHERE deleted_at IS NULL
453
-  (26.1ms) CREATE INDEX "index_employers_on_name" ON "employers" ("name") WHERE deleted_at IS NULL
454
- SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160213101213"]]
455
-  (9.6ms) COMMIT
456
- Migrating to CreateUsers (20160213101221)
457
-  (0.2ms) BEGIN
458
-  (34.7ms) CREATE TABLE "users" ("id" serial primary key, "email" character varying, "first_name" character varying, "last_name" character varying, "profile_id" integer, "employer_id" integer, "country_code" character varying NOT NULL, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
459
-  (1.3ms) ALTER TABLE "users" ADD CONSTRAINT "fk_rails_e0dbdd604c"
460
- FOREIGN KEY ("employer_id")
461
- REFERENCES "employers" ("id")
462
-
463
-  (15.0ms) CREATE INDEX "index_users_on_last_name_and_first_name_and_email" ON "users" ("last_name", "first_name", "email")
464
-  (27.7ms) CREATE INDEX "index_users_on_last_name_and_first_name" ON "users" ("last_name", "first_name")
465
-  (11.2ms) CREATE UNIQUE INDEX "unique_index_on_users_last_name_and_first_name" ON "users" ("last_name", "first_name")
466
-  (16.5ms) CREATE INDEX "index_users_on_last_name" ON "users" ("last_name")
467
-  (19.7ms) CREATE INDEX "index_users_on_email" ON "users" ("email")
468
-  (15.9ms) CREATE UNIQUE INDEX "unique_index_on_users_email" ON "users" ("email")
469
-  (12.8ms) CREATE INDEX "index_users_on_employer_id_and_country_code" ON "users" ("employer_id", "country_code")
470
- SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160213101221"]]
471
-  (8.0ms) COMMIT
472
- Migrating to CreateProfiles (20160213101232)
473
-  (0.2ms) BEGIN
474
-  (29.6ms) CREATE TABLE "profiles" ("id" serial primary key, "first_name" character varying, "last_name" character varying, "deleted_at" timestamp, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
475
-  (11.0ms) CREATE INDEX "index_profiles_on_first_name_and_last_name" ON "profiles" ("first_name", "last_name")
476
- SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160213101232"]]
477
-  (8.4ms) COMMIT
478
- Migrating to CreateComments (20160604081452)
479
-  (0.1ms) BEGIN
480
-  (33.1ms) CREATE TABLE "comments" ("id" serial primary key, "commentable_id" integer, "commentable_type" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
481
-  (10.6ms) CREATE INDEX "index_comments_on_commentable_type_and_commentable_id" ON "comments" ("commentable_type", "commentable_id")
482
- SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160604081452"]]
483
-  (11.8ms) COMMIT
484
- ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations".* FROM "schema_migrations"
485
-  (1.6ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
486
- FROM pg_constraint c
487
- JOIN pg_class t1 ON c.conrelid = t1.oid
488
- JOIN pg_class t2 ON c.confrelid = t2.oid
489
- JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
490
- JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
491
- JOIN pg_namespace t3 ON c.connamespace = t3.oid
492
- WHERE c.contype = 'f'
493
- AND t1.relname = 'comments'
494
- AND t3.nspname = ANY (current_schemas(false))
495
- ORDER BY c.conname
496
- 
497
-  (1.4ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
498
- FROM pg_constraint c
499
- JOIN pg_class t1 ON c.conrelid = t1.oid
500
- JOIN pg_class t2 ON c.confrelid = t2.oid
501
- JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
502
- JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
503
- JOIN pg_namespace t3 ON c.connamespace = t3.oid
504
- WHERE c.contype = 'f'
505
- AND t1.relname = 'employers'
506
- AND t3.nspname = ANY (current_schemas(false))
507
- ORDER BY c.conname
508
-
509
-  (1.5ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
510
- FROM pg_constraint c
511
- JOIN pg_class t1 ON c.conrelid = t1.oid
512
- JOIN pg_class t2 ON c.confrelid = t2.oid
513
- JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
514
- JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
515
- JOIN pg_namespace t3 ON c.connamespace = t3.oid
516
- WHERE c.contype = 'f'
517
- AND t1.relname = 'profiles'
518
- AND t3.nspname = ANY (current_schemas(false))
519
- ORDER BY c.conname
520
- 
521
-  (1.6ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
522
- FROM pg_constraint c
523
- JOIN pg_class t1 ON c.conrelid = t1.oid
524
- JOIN pg_class t2 ON c.confrelid = t2.oid
525
- JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
526
- JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
527
- JOIN pg_namespace t3 ON c.connamespace = t3.oid
528
- WHERE c.contype = 'f'
529
- AND t1.relname = 'users'
530
- AND t3.nspname = ANY (current_schemas(false))
531
- ORDER BY c.conname
532
-