active_record_doctor 1.7.1 → 1.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +287 -43
- data/lib/active_record_doctor/config/default.rb +59 -0
- data/lib/active_record_doctor/config/loader.rb +137 -0
- data/lib/active_record_doctor/config.rb +14 -0
- data/lib/active_record_doctor/detectors/base.rb +155 -0
- data/lib/active_record_doctor/detectors/extraneous_indexes.rb +114 -0
- data/lib/active_record_doctor/detectors/incorrect_boolean_presence_validation.rb +49 -0
- data/lib/active_record_doctor/detectors/incorrect_dependent_option.rb +107 -0
- data/lib/active_record_doctor/detectors/mismatched_foreign_key_type.rb +45 -0
- data/lib/active_record_doctor/detectors/missing_foreign_keys.rb +60 -0
- data/lib/active_record_doctor/detectors/missing_non_null_constraint.rb +72 -0
- data/lib/active_record_doctor/{tasks → detectors}/missing_presence_validation.rb +35 -21
- data/lib/active_record_doctor/detectors/missing_unique_indexes.rb +71 -0
- data/lib/active_record_doctor/detectors/short_primary_key_type.rb +41 -0
- data/lib/active_record_doctor/detectors/undefined_table_references.rb +33 -0
- data/lib/active_record_doctor/detectors/unindexed_deleted_at.rb +55 -0
- data/lib/active_record_doctor/detectors/unindexed_foreign_keys.rb +59 -0
- data/lib/active_record_doctor/detectors.rb +21 -0
- data/lib/active_record_doctor/errors.rb +226 -0
- data/lib/active_record_doctor/help.rb +39 -0
- data/lib/active_record_doctor/printers.rb +3 -1
- data/lib/active_record_doctor/railtie.rb +2 -0
- data/lib/active_record_doctor/rake/task.rb +78 -0
- data/lib/active_record_doctor/runner.rb +41 -0
- data/lib/active_record_doctor/version.rb +3 -1
- data/lib/active_record_doctor.rb +24 -2
- data/lib/generators/active_record_doctor/add_indexes/add_indexes_generator.rb +46 -29
- data/lib/tasks/active_record_doctor.rake +21 -29
- data/test/active_record_doctor/config/loader_test.rb +120 -0
- data/test/active_record_doctor/config_test.rb +116 -0
- data/test/active_record_doctor/detectors/extraneous_indexes_test.rb +190 -0
- data/test/active_record_doctor/detectors/incorrect_boolean_presence_validation_test.rb +79 -0
- data/test/active_record_doctor/detectors/incorrect_dependent_option_test.rb +295 -0
- data/test/active_record_doctor/detectors/mismatched_foreign_key_type_test.rb +82 -0
- data/test/active_record_doctor/detectors/missing_foreign_keys_test.rb +70 -0
- data/test/active_record_doctor/detectors/missing_non_null_constraint_test.rb +216 -0
- data/test/active_record_doctor/detectors/missing_presence_validation_test.rb +168 -0
- data/test/active_record_doctor/detectors/missing_unique_indexes_test.rb +163 -0
- data/test/active_record_doctor/detectors/short_primary_key_type_test.rb +64 -0
- data/test/active_record_doctor/detectors/undefined_table_references_test.rb +57 -0
- data/test/active_record_doctor/detectors/unindexed_deleted_at_test.rb +171 -0
- data/test/active_record_doctor/detectors/unindexed_foreign_keys_test.rb +78 -0
- data/test/active_record_doctor/runner_test.rb +42 -0
- data/test/generators/active_record_doctor/add_indexes/add_indexes_generator_test.rb +131 -0
- data/test/model_factory.rb +128 -0
- data/test/setup.rb +116 -0
- metadata +103 -154
- data/Rakefile +0 -28
- data/lib/active_record_doctor/printers/io_printer.rb +0 -105
- data/lib/active_record_doctor/tasks/base.rb +0 -78
- data/lib/active_record_doctor/tasks/extraneous_indexes.rb +0 -82
- data/lib/active_record_doctor/tasks/incorrect_boolean_presence_validation.rb +0 -33
- data/lib/active_record_doctor/tasks/missing_foreign_keys.rb +0 -46
- data/lib/active_record_doctor/tasks/missing_non_null_constraint.rb +0 -52
- data/lib/active_record_doctor/tasks/missing_unique_indexes.rb +0 -56
- data/lib/active_record_doctor/tasks/undefined_table_references.rb +0 -33
- data/lib/active_record_doctor/tasks/unindexed_deleted_at.rb +0 -19
- data/lib/active_record_doctor/tasks/unindexed_foreign_keys.rb +0 -43
- data/lib/active_record_doctor/tasks.rb +0 -7
- data/test/active_record_doctor/printers/io_printer_test.rb +0 -20
- data/test/active_record_doctor/tasks/extraneous_indexes_test.rb +0 -81
- data/test/active_record_doctor/tasks/incorrect_boolean_presence_validation_test.rb +0 -33
- data/test/active_record_doctor/tasks/missing_foreign_keys_test.rb +0 -27
- data/test/active_record_doctor/tasks/missing_non_null_constraint_test.rb +0 -108
- data/test/active_record_doctor/tasks/missing_presence_validation_test.rb +0 -110
- data/test/active_record_doctor/tasks/missing_unique_indexes_test.rb +0 -95
- data/test/active_record_doctor/tasks/undefined_table_references_test.rb +0 -51
- data/test/active_record_doctor/tasks/unindexed_deleted_at_test.rb +0 -34
- data/test/active_record_doctor/tasks/unindexed_foreign_keys_test.rb +0 -27
- data/test/dummy/README.rdoc +0 -28
- data/test/dummy/Rakefile +0 -6
- data/test/dummy/app/assets/config/manifest.js +0 -1
- data/test/dummy/app/assets/javascripts/application.js +0 -13
- data/test/dummy/app/assets/stylesheets/application.css +0 -15
- data/test/dummy/app/controllers/application_controller.rb +0 -5
- data/test/dummy/app/helpers/application_helper.rb +0 -2
- data/test/dummy/app/models/application_record.rb +0 -3
- data/test/dummy/app/views/layouts/application.html.erb +0 -14
- data/test/dummy/bin/bundle +0 -3
- data/test/dummy/bin/rails +0 -4
- data/test/dummy/bin/rake +0 -4
- data/test/dummy/bin/setup +0 -29
- data/test/dummy/config/application.rb +0 -23
- data/test/dummy/config/boot.rb +0 -5
- data/test/dummy/config/database.yml +0 -19
- data/test/dummy/config/database.yml.travis +0 -5
- data/test/dummy/config/environment.rb +0 -5
- data/test/dummy/config/environments/development.rb +0 -41
- data/test/dummy/config/environments/production.rb +0 -79
- data/test/dummy/config/environments/test.rb +0 -47
- data/test/dummy/config/initializers/assets.rb +0 -11
- data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
- data/test/dummy/config/initializers/cookies_serializer.rb +0 -3
- data/test/dummy/config/initializers/filter_parameter_logging.rb +0 -4
- data/test/dummy/config/initializers/inflections.rb +0 -16
- data/test/dummy/config/initializers/mime_types.rb +0 -4
- data/test/dummy/config/initializers/session_store.rb +0 -3
- data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
- data/test/dummy/config/locales/en.yml +0 -23
- data/test/dummy/config/routes.rb +0 -56
- data/test/dummy/config/secrets.yml +0 -22
- data/test/dummy/config.ru +0 -4
- data/test/dummy/db/migrate/base_migration.rb +0 -5
- data/test/dummy/db/schema.rb +0 -19
- data/test/dummy/log/development.log +0 -111
- data/test/dummy/log/test.log +0 -79424
- data/test/dummy/public/404.html +0 -67
- data/test/dummy/public/422.html +0 -67
- data/test/dummy/public/500.html +0 -66
- data/test/dummy/public/favicon.ico +0 -0
- data/test/support/assertions.rb +0 -11
- data/test/support/temping.rb +0 -25
- data/test/test_helper.rb +0 -17
@@ -1,14 +0,0 @@
|
|
1
|
-
# Be sure to restart your server when you modify this file.
|
2
|
-
|
3
|
-
# This file contains settings for ActionController::ParamsWrapper which
|
4
|
-
# is enabled by default.
|
5
|
-
|
6
|
-
# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
|
7
|
-
ActiveSupport.on_load(:action_controller) do
|
8
|
-
wrap_parameters format: [:json] if respond_to?(:wrap_parameters)
|
9
|
-
end
|
10
|
-
|
11
|
-
# To enable root element in JSON for ActiveRecord objects.
|
12
|
-
# ActiveSupport.on_load(:active_record) do
|
13
|
-
# self.include_root_in_json = true
|
14
|
-
# end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
# Files in the config/locales directory are used for internationalization
|
2
|
-
# and are automatically loaded by Rails. If you want to use locales other
|
3
|
-
# than English, add the necessary files in this directory.
|
4
|
-
#
|
5
|
-
# To use the locales, use `I18n.t`:
|
6
|
-
#
|
7
|
-
# I18n.t 'hello'
|
8
|
-
#
|
9
|
-
# In views, this is aliased to just `t`:
|
10
|
-
#
|
11
|
-
# <%= t('hello') %>
|
12
|
-
#
|
13
|
-
# To use a different locale, set it with `I18n.locale`:
|
14
|
-
#
|
15
|
-
# I18n.locale = :es
|
16
|
-
#
|
17
|
-
# This would use the information in config/locales/es.yml.
|
18
|
-
#
|
19
|
-
# To learn more, please read the Rails Internationalization guide
|
20
|
-
# available at http://guides.rubyonrails.org/i18n.html.
|
21
|
-
|
22
|
-
en:
|
23
|
-
hello: "Hello world"
|
data/test/dummy/config/routes.rb
DELETED
@@ -1,56 +0,0 @@
|
|
1
|
-
Rails.application.routes.draw do
|
2
|
-
# The priority is based upon order of creation: first created -> highest priority.
|
3
|
-
# See how all your routes lay out with "rake routes".
|
4
|
-
|
5
|
-
# You can have the root of your site routed with "root"
|
6
|
-
# root 'welcome#index'
|
7
|
-
|
8
|
-
# Example of regular route:
|
9
|
-
# get 'products/:id' => 'catalog#view'
|
10
|
-
|
11
|
-
# Example of named route that can be invoked with purchase_url(id: product.id)
|
12
|
-
# get 'products/:id/purchase' => 'catalog#purchase', as: :purchase
|
13
|
-
|
14
|
-
# Example resource route (maps HTTP verbs to controller actions automatically):
|
15
|
-
# resources :products
|
16
|
-
|
17
|
-
# Example resource route with options:
|
18
|
-
# resources :products do
|
19
|
-
# member do
|
20
|
-
# get 'short'
|
21
|
-
# post 'toggle'
|
22
|
-
# end
|
23
|
-
#
|
24
|
-
# collection do
|
25
|
-
# get 'sold'
|
26
|
-
# end
|
27
|
-
# end
|
28
|
-
|
29
|
-
# Example resource route with sub-resources:
|
30
|
-
# resources :products do
|
31
|
-
# resources :comments, :sales
|
32
|
-
# resource :seller
|
33
|
-
# end
|
34
|
-
|
35
|
-
# Example resource route with more complex sub-resources:
|
36
|
-
# resources :products do
|
37
|
-
# resources :comments
|
38
|
-
# resources :sales do
|
39
|
-
# get 'recent', on: :collection
|
40
|
-
# end
|
41
|
-
# end
|
42
|
-
|
43
|
-
# Example resource route with concerns:
|
44
|
-
# concern :toggleable do
|
45
|
-
# post 'toggle'
|
46
|
-
# end
|
47
|
-
# resources :posts, concerns: :toggleable
|
48
|
-
# resources :photos, concerns: :toggleable
|
49
|
-
|
50
|
-
# Example resource route within a namespace:
|
51
|
-
# namespace :admin do
|
52
|
-
# # Directs /admin/products/* to Admin::ProductsController
|
53
|
-
# # (app/controllers/admin/products_controller.rb)
|
54
|
-
# resources :products
|
55
|
-
# end
|
56
|
-
end
|
@@ -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"] %>
|
data/test/dummy/config.ru
DELETED
data/test/dummy/db/schema.rb
DELETED
@@ -1,19 +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: 0) do
|
15
|
-
|
16
|
-
# These are extensions that must be enabled in order to support this database
|
17
|
-
enable_extension "plpgsql"
|
18
|
-
|
19
|
-
end
|
@@ -1,111 +0,0 @@
|
|
1
|
-
[1m[36m (30.0ms)[0m [1mCREATE TABLE "schema_migrations" ("version" character varying NOT NULL) [0m
|
2
|
-
[1m[35m (34.5ms)[0m CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
|
3
|
-
[1m[36mActiveRecord::SchemaMigration Load (0.2ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
4
|
-
[1m[36m (36.0ms)[0m [1mCREATE TABLE "schema_migrations" ("version" character varying NOT NULL) [0m
|
5
|
-
[1m[35m (12.4ms)[0m CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
|
6
|
-
[1m[36mActiveRecord::SchemaMigration Load (0.2ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
7
|
-
Migrating to CreateEmployers (20160213101213)
|
8
|
-
[1m[35m (0.1ms)[0m BEGIN
|
9
|
-
[1m[36m (31.6ms)[0m [1mCREATE TABLE "employers" ("id" serial primary key, "name" character varying, "deleted_at" timestamp, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
10
|
-
[1m[35m (10.5ms)[0m CREATE INDEX "index_employers_on_id" ON "employers" ("id") WHERE deleted_at IS NULL
|
11
|
-
[1m[36m (16.4ms)[0m [1mCREATE UNIQUE INDEX "index_employers_on_name_where_undeleted" ON "employers" ("name") WHERE deleted_at IS NULL[0m
|
12
|
-
[1m[35mSQL (0.2ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160213101213"]]
|
13
|
-
[1m[36m (27.4ms)[0m [1mCOMMIT[0m
|
14
|
-
Migrating to CreateUsers (20160213101221)
|
15
|
-
[1m[35m (0.1ms)[0m BEGIN
|
16
|
-
[1m[36m (47.7ms)[0m [1mCREATE TABLE "users" ("id" serial primary key, "name" character varying, "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) [0m
|
17
|
-
[1m[35m (1.0ms)[0m ALTER TABLE "users" ADD CONSTRAINT "fk_rails_e0dbdd604c"
|
18
|
-
FOREIGN KEY ("employer_id")
|
19
|
-
REFERENCES "employers" ("id")
|
20
|
-
|
21
|
-
[1m[36m (10.4ms)[0m [1mCREATE INDEX "index_users_on_last_name_and_first_name_and_email" ON "users" ("last_name", "first_name", "email")[0m
|
22
|
-
[1m[35m (17.5ms)[0m CREATE INDEX "index_users_on_last_name_and_first_name" ON "users" ("last_name", "first_name")
|
23
|
-
[1m[36m (10.4ms)[0m [1mCREATE UNIQUE INDEX "unique_index_on_users_last_name_and_first_name" ON "users" ("last_name", "first_name")[0m
|
24
|
-
[1m[35m (16.1ms)[0m CREATE INDEX "index_users_on_last_name" ON "users" ("last_name")
|
25
|
-
[1m[36m (16.4ms)[0m [1mCREATE INDEX "index_users_on_email" ON "users" ("email")[0m
|
26
|
-
[1m[35m (13.5ms)[0m CREATE UNIQUE INDEX "unique_index_on_users_email" ON "users" ("email")
|
27
|
-
[1m[36m (19.9ms)[0m [1mCREATE INDEX "index_users_on_employer_id_and_country_code" ON "users" ("employer_id", "country_code")[0m
|
28
|
-
[1m[35mSQL (0.2ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160213101221"]]
|
29
|
-
[1m[36m (11.8ms)[0m [1mCOMMIT[0m
|
30
|
-
[1m[35mActiveRecord::SchemaMigration Load (0.1ms)[0m SELECT "schema_migrations".* FROM "schema_migrations"
|
31
|
-
[1m[36m (1.4ms)[0m [1mSELECT 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
|
32
|
-
FROM pg_constraint c
|
33
|
-
JOIN pg_class t1 ON c.conrelid = t1.oid
|
34
|
-
JOIN pg_class t2 ON c.confrelid = t2.oid
|
35
|
-
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
36
|
-
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
37
|
-
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
38
|
-
WHERE c.contype = 'f'
|
39
|
-
AND t1.relname = 'employers'
|
40
|
-
AND t3.nspname = ANY (current_schemas(false))
|
41
|
-
ORDER BY c.conname
|
42
|
-
[0m
|
43
|
-
[1m[35m (1.2ms)[0m 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
|
44
|
-
FROM pg_constraint c
|
45
|
-
JOIN pg_class t1 ON c.conrelid = t1.oid
|
46
|
-
JOIN pg_class t2 ON c.confrelid = t2.oid
|
47
|
-
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
48
|
-
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
49
|
-
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
50
|
-
WHERE c.contype = 'f'
|
51
|
-
AND t1.relname = 'users'
|
52
|
-
AND t3.nspname = ANY (current_schemas(false))
|
53
|
-
ORDER BY c.conname
|
54
|
-
|
55
|
-
[1m[36m (21.0ms)[0m [1mCREATE TABLE "schema_migrations" ("version" character varying NOT NULL) [0m
|
56
|
-
[1m[35m (18.1ms)[0m CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
|
57
|
-
[1m[36mActiveRecord::SchemaMigration Load (0.2ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
58
|
-
[1m[36m (0.2ms)[0m [1mDROP DATABASE IF EXISTS "active_record_doctor_development"[0m
|
59
|
-
[1m[35m (0.1ms)[0m DROP DATABASE IF EXISTS "active_record_doctor_test"
|
60
|
-
[1m[36m (214.1ms)[0m [1mCREATE DATABASE "active_record_doctor_development" ENCODING = 'unicode'[0m
|
61
|
-
[1m[35m (212.1ms)[0m CREATE DATABASE "active_record_doctor_test" ENCODING = 'unicode'
|
62
|
-
[1m[36mSQL (0.1ms)[0m [1mCREATE EXTENSION IF NOT EXISTS "plpgsql"[0m
|
63
|
-
[1m[35m (1.9ms)[0m CREATE TABLE "schema_migrations" ("version" character varying NOT NULL)
|
64
|
-
[1m[36m (0.4ms)[0m [1mCREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")[0m
|
65
|
-
[1m[35m (0.2ms)[0m SELECT version FROM "schema_migrations"
|
66
|
-
[1m[36m (0.2ms)[0m [1mINSERT INTO "schema_migrations" (version) VALUES ('0')[0m
|
67
|
-
[1m[35mSQL (0.2ms)[0m CREATE EXTENSION IF NOT EXISTS "plpgsql"
|
68
|
-
[1m[36m (1.4ms)[0m [1mCREATE TABLE "schema_migrations" ("version" character varying NOT NULL) [0m
|
69
|
-
[1m[35m (0.4ms)[0m CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
|
70
|
-
[1m[36m (0.2ms)[0m [1mSELECT version FROM "schema_migrations"[0m
|
71
|
-
[1m[35m (0.2ms)[0m INSERT INTO "schema_migrations" (version) VALUES ('0')
|
72
|
-
[1m[36mActiveRecord::SchemaMigration Load (0.4ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
73
|
-
[1m[36mSQL (0.2ms)[0m [1mCREATE EXTENSION IF NOT EXISTS "plpgsql"[0m
|
74
|
-
[1m[35m (21.8ms)[0m CREATE TABLE "schema_migrations" ("version" character varying NOT NULL)
|
75
|
-
[1m[36m (18.9ms)[0m [1mCREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")[0m
|
76
|
-
[1m[35m (0.4ms)[0m SELECT version FROM "schema_migrations"
|
77
|
-
[1m[36m (7.9ms)[0m [1mINSERT INTO "schema_migrations" (version) VALUES ('0')[0m
|
78
|
-
[1m[35mSQL (0.4ms)[0m CREATE EXTENSION IF NOT EXISTS "plpgsql"
|
79
|
-
[1m[36m (30.9ms)[0m [1mCREATE TABLE "schema_migrations" ("version" character varying NOT NULL) [0m
|
80
|
-
[1m[35m (25.2ms)[0m CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
|
81
|
-
[1m[36m (0.5ms)[0m [1mSELECT version FROM "schema_migrations"[0m
|
82
|
-
[1m[35m (2.5ms)[0m INSERT INTO "schema_migrations" (version) VALUES ('0')
|
83
|
-
[1m[36mActiveRecord::SchemaMigration Load (0.6ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
84
|
-
[1m[36m (99.4ms)[0m [1mCREATE TABLE "schema_migrations" ("version" character varying NOT NULL) [0m
|
85
|
-
[1m[35m (34.0ms)[0m CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
|
86
|
-
[1m[36mActiveRecord::SchemaMigration Load (0.2ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
87
|
-
Migrating to CreateUsers (20191214141255)
|
88
|
-
[1m[35m (0.1ms)[0m BEGIN
|
89
|
-
[1m[36m (45.9ms)[0m [1mCREATE TABLE "users" ("id" serial primary key, "timezone" character varying DEFAULT 'UTC' NOT NULL) [0m
|
90
|
-
[1m[35mSQL (0.2ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20191214141255"]]
|
91
|
-
[1m[36m (13.1ms)[0m [1mCOMMIT[0m
|
92
|
-
[1m[35mActiveRecord::SchemaMigration Load (0.2ms)[0m SELECT "schema_migrations".* FROM "schema_migrations"
|
93
|
-
[1m[36m (14.5ms)[0m [1mSELECT 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
|
94
|
-
FROM pg_constraint c
|
95
|
-
JOIN pg_class t1 ON c.conrelid = t1.oid
|
96
|
-
JOIN pg_class t2 ON c.confrelid = t2.oid
|
97
|
-
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
98
|
-
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
99
|
-
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
100
|
-
WHERE c.contype = 'f'
|
101
|
-
AND t1.relname = 'users'
|
102
|
-
AND t3.nspname = ANY (current_schemas(false))
|
103
|
-
ORDER BY c.conname
|
104
|
-
[0m
|
105
|
-
[1m[36m (0.2ms)[0m [1mBEGIN[0m
|
106
|
-
[1m[35mSQL (0.5ms)[0m INSERT INTO "users" DEFAULT VALUES RETURNING "id"
|
107
|
-
[1m[36m (8.2ms)[0m [1mCOMMIT[0m
|
108
|
-
[1m[35mUser Load (0.5ms)[0m SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT 1
|
109
|
-
[1m[36m (0.2ms)[0m [1mBEGIN[0m
|
110
|
-
[1m[35mSQL (0.3ms)[0m INSERT INTO "users" ("timezone") VALUES ($1) RETURNING "id" [["timezone", nil]]
|
111
|
-
[1m[36m (0.1ms)[0m [1mROLLBACK[0m
|