simple_recommender 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/Rakefile +34 -0
- data/lib/simple_recommender.rb +5 -0
- data/lib/simple_recommender/recommendable.rb +91 -0
- data/lib/simple_recommender/version.rb +3 -0
- data/lib/tasks/simple_recommender_tasks.rake +4 -0
- data/test/dummy/README.rdoc +28 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/javascripts/application.js +13 -0
- data/test/dummy/app/assets/stylesheets/application.css +15 -0
- data/test/dummy/app/controllers/application_controller.rb +5 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/models/book.rb +10 -0
- data/test/dummy/app/models/like.rb +4 -0
- data/test/dummy/app/models/tag.rb +2 -0
- data/test/dummy/app/models/user.rb +3 -0
- data/test/dummy/app/views/layouts/application.html.erb +13 -0
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/bin/setup +29 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +32 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/database.yml +85 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +41 -0
- data/test/dummy/config/environments/production.rb +79 -0
- data/test/dummy/config/environments/test.rb +42 -0
- data/test/dummy/config/initializers/assets.rb +11 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +4 -0
- data/test/dummy/config/initializers/session_store.rb +3 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +23 -0
- data/test/dummy/config/routes.rb +56 -0
- data/test/dummy/config/secrets.yml +22 -0
- data/test/dummy/db/migrate/20170123001813_create_books.rb +9 -0
- data/test/dummy/db/migrate/20170123001819_create_users.rb +9 -0
- data/test/dummy/db/migrate/20170123001909_create_books_users.rb +11 -0
- data/test/dummy/db/migrate/20170123010745_enable_int_array_extension.rb +5 -0
- data/test/dummy/db/migrate/20170125030342_create_tags.rb +9 -0
- data/test/dummy/db/migrate/20170125030446_create_likes.rb +10 -0
- data/test/dummy/db/migrate/20170125032813_add_author_to_books.rb +5 -0
- data/test/dummy/db/migrate/20170125034331_create_books_tags.rb +8 -0
- data/test/dummy/db/migrate/20170125034341_remove_books_users.rb +5 -0
- data/test/dummy/db/schema.rb +63 -0
- data/test/dummy/log/development.log +511 -0
- data/test/dummy/log/test.log +5624 -0
- data/test/dummy/public/404.html +67 -0
- data/test/dummy/public/422.html +67 -0
- data/test/dummy/public/500.html +66 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/test/models/book_test.rb +77 -0
- data/test/dummy/test/models/like_test.rb +7 -0
- data/test/dummy/test/models/tag_test.rb +7 -0
- data/test/dummy/test/models/user_test.rb +7 -0
- data/test/fixtures/books.yml +29 -0
- data/test/fixtures/likes.yml +57 -0
- data/test/fixtures/tags.yml +19 -0
- data/test/fixtures/users.yml +19 -0
- data/test/simple_recommender_test.rb +7 -0
- data/test/test_helper.rb +20 -0
- metadata +199 -0
@@ -0,0 +1,63 @@
|
|
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: 20170125034341) do
|
15
|
+
|
16
|
+
# These are extensions that must be enabled in order to support this database
|
17
|
+
enable_extension "plpgsql"
|
18
|
+
enable_extension "intarray"
|
19
|
+
|
20
|
+
create_table "books", force: :cascade do |t|
|
21
|
+
t.string "name"
|
22
|
+
t.datetime "created_at", null: false
|
23
|
+
t.datetime "updated_at", null: false
|
24
|
+
t.integer "author_id"
|
25
|
+
end
|
26
|
+
|
27
|
+
add_index "books", ["author_id"], name: "index_books_on_author_id", using: :btree
|
28
|
+
|
29
|
+
create_table "books_tags", force: :cascade do |t|
|
30
|
+
t.integer "book_id"
|
31
|
+
t.integer "tag_id"
|
32
|
+
end
|
33
|
+
|
34
|
+
add_index "books_tags", ["book_id"], name: "index_books_tags_on_book_id", using: :btree
|
35
|
+
add_index "books_tags", ["tag_id"], name: "index_books_tags_on_tag_id", using: :btree
|
36
|
+
|
37
|
+
create_table "likes", force: :cascade do |t|
|
38
|
+
t.integer "user_id"
|
39
|
+
t.integer "book_id"
|
40
|
+
t.datetime "created_at", null: false
|
41
|
+
t.datetime "updated_at", null: false
|
42
|
+
end
|
43
|
+
|
44
|
+
add_index "likes", ["book_id"], name: "index_likes_on_book_id", using: :btree
|
45
|
+
add_index "likes", ["user_id"], name: "index_likes_on_user_id", using: :btree
|
46
|
+
|
47
|
+
create_table "tags", force: :cascade do |t|
|
48
|
+
t.string "name"
|
49
|
+
t.datetime "created_at", null: false
|
50
|
+
t.datetime "updated_at", null: false
|
51
|
+
end
|
52
|
+
|
53
|
+
create_table "users", force: :cascade do |t|
|
54
|
+
t.string "name"
|
55
|
+
t.datetime "created_at", null: false
|
56
|
+
t.datetime "updated_at", null: false
|
57
|
+
end
|
58
|
+
|
59
|
+
add_foreign_key "books_tags", "books"
|
60
|
+
add_foreign_key "books_tags", "tags"
|
61
|
+
add_foreign_key "likes", "books"
|
62
|
+
add_foreign_key "likes", "users"
|
63
|
+
end
|
@@ -0,0 +1,511 @@
|
|
1
|
+
[1m[36m (56.4ms)[0m [1mCREATE TABLE "schema_migrations" ("version" character varying NOT NULL) [0m
|
2
|
+
[1m[35m (2.9ms)[0m CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
|
3
|
+
[1m[36mActiveRecord::SchemaMigration Load (2.2ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
4
|
+
[1m[36mSQL (17.3ms)[0m [1mCREATE EXTENSION IF NOT EXISTS "plpgsql"[0m
|
5
|
+
[1m[35m (0.3ms)[0m SELECT version FROM "schema_migrations"
|
6
|
+
[1m[36m (1.7ms)[0m [1mINSERT INTO "schema_migrations" (version) VALUES ('0')[0m
|
7
|
+
[1m[35mSQL (1.3ms)[0m CREATE EXTENSION IF NOT EXISTS "plpgsql"
|
8
|
+
[1m[36m (16.2ms)[0m [1mCREATE TABLE "schema_migrations" ("version" character varying NOT NULL) [0m
|
9
|
+
[1m[35m (2.0ms)[0m CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
|
10
|
+
[1m[36m (0.6ms)[0m [1mSELECT version FROM "schema_migrations"[0m
|
11
|
+
[1m[35m (0.4ms)[0m INSERT INTO "schema_migrations" (version) VALUES ('0')
|
12
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.3ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
13
|
+
[1m[36mActiveRecord::SchemaMigration Load (24.9ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
14
|
+
[1m[36mBook Load (18.4ms)[0m [1mSELECT "books".* FROM "books" ORDER BY "books"."id" ASC LIMIT 1[0m
|
15
|
+
[1m[36mSQL (2.1ms)[0m [1mCREATE EXTENSION IF NOT EXISTS "plpgsql"[0m
|
16
|
+
[1m[35m (8.1ms)[0m SELECT version FROM "schema_migrations"
|
17
|
+
[1m[36mSQL (2.2ms)[0m [1mCREATE EXTENSION IF NOT EXISTS "plpgsql"[0m
|
18
|
+
[1m[35m (2.1ms)[0m SELECT version FROM "schema_migrations"
|
19
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.4ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
20
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.3ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
21
|
+
Migrating to CreateBooks (20170123001813)
|
22
|
+
[1m[35m (0.2ms)[0m BEGIN
|
23
|
+
[1m[36m (56.9ms)[0m [1mCREATE TABLE "books" ("id" serial primary key, "name" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
24
|
+
[1m[35mSQL (23.7ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20170123001813"]]
|
25
|
+
[1m[36m (0.9ms)[0m [1mCOMMIT[0m
|
26
|
+
Migrating to CreateUsers (20170123001819)
|
27
|
+
[1m[35m (5.9ms)[0m BEGIN
|
28
|
+
[1m[36m (22.5ms)[0m [1mCREATE TABLE "users" ("id" serial primary key, "name" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
29
|
+
[1m[35mSQL (0.2ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20170123001819"]]
|
30
|
+
[1m[36m (0.4ms)[0m [1mCOMMIT[0m
|
31
|
+
Migrating to CreateBooksUsers (20170123001909)
|
32
|
+
[1m[35m (7.2ms)[0m BEGIN
|
33
|
+
[1m[36m (1.3ms)[0m [1mROLLBACK[0m
|
34
|
+
[1m[36mActiveRecord::SchemaMigration Load (19.8ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
35
|
+
Migrating to CreateBooksUsers (20170123001909)
|
36
|
+
[1m[35m (0.2ms)[0m BEGIN
|
37
|
+
[1m[36m (39.7ms)[0m [1mCREATE TABLE "books_users" ("id" serial primary key, "book_id" integer, "user_id" integer) [0m
|
38
|
+
[1m[35mSQL (4.6ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20170123001909"]]
|
39
|
+
[1m[36m (6.2ms)[0m [1mCOMMIT[0m
|
40
|
+
[1m[35mActiveRecord::SchemaMigration Load (0.2ms)[0m SELECT "schema_migrations".* FROM "schema_migrations"
|
41
|
+
[1m[36m (15.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
|
42
|
+
FROM pg_constraint c
|
43
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
44
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
45
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
46
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
47
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
48
|
+
WHERE c.contype = 'f'
|
49
|
+
AND t1.relname = 'books'
|
50
|
+
AND t3.nspname = ANY (current_schemas(false))
|
51
|
+
ORDER BY c.conname
|
52
|
+
[0m
|
53
|
+
[1m[35m (3.3ms)[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
|
54
|
+
FROM pg_constraint c
|
55
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
56
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
57
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
58
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
59
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
60
|
+
WHERE c.contype = 'f'
|
61
|
+
AND t1.relname = 'books_users'
|
62
|
+
AND t3.nspname = ANY (current_schemas(false))
|
63
|
+
ORDER BY c.conname
|
64
|
+
|
65
|
+
[1m[36m (3.2ms)[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
|
66
|
+
FROM pg_constraint c
|
67
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
68
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
69
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
70
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
71
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
72
|
+
WHERE c.contype = 'f'
|
73
|
+
AND t1.relname = 'users'
|
74
|
+
AND t3.nspname = ANY (current_schemas(false))
|
75
|
+
ORDER BY c.conname
|
76
|
+
[0m
|
77
|
+
[1m[36mActiveRecord::SchemaMigration Load (7.8ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
78
|
+
[1m[35mActiveRecord::SchemaMigration Load (0.2ms)[0m SELECT "schema_migrations".* FROM "schema_migrations"
|
79
|
+
Migrating to CreateBooksUsers (20170123001909)
|
80
|
+
[1m[36m (0.2ms)[0m [1mBEGIN[0m
|
81
|
+
[1m[35m (33.7ms)[0m DROP TABLE "books_users"
|
82
|
+
[1m[36mSQL (12.5ms)[0m [1mDELETE FROM "schema_migrations" WHERE "schema_migrations"."version" = $1[0m [["version", "20170123001909"]]
|
83
|
+
[1m[35m (6.7ms)[0m COMMIT
|
84
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.2ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
85
|
+
[1m[35m (2.8ms)[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
|
86
|
+
FROM pg_constraint c
|
87
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
88
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
89
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
90
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
91
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
92
|
+
WHERE c.contype = 'f'
|
93
|
+
AND t1.relname = 'books'
|
94
|
+
AND t3.nspname = ANY (current_schemas(false))
|
95
|
+
ORDER BY c.conname
|
96
|
+
|
97
|
+
[1m[36m (2.8ms)[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
|
98
|
+
FROM pg_constraint c
|
99
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
100
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
101
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
102
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
103
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
104
|
+
WHERE c.contype = 'f'
|
105
|
+
AND t1.relname = 'users'
|
106
|
+
AND t3.nspname = ANY (current_schemas(false))
|
107
|
+
ORDER BY c.conname
|
108
|
+
[0m
|
109
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.3ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
110
|
+
Migrating to CreateBooksUsers (20170123001909)
|
111
|
+
[1m[35m (0.2ms)[0m BEGIN
|
112
|
+
[1m[36m (12.7ms)[0m [1mCREATE TABLE "books_users" ("id" serial primary key, "book_id" integer, "user_id" integer) [0m
|
113
|
+
[1m[35m (1.0ms)[0m CREATE UNIQUE INDEX "index_books_users_on_book_id_and_user_id" ON "books_users" ("book_id", "user_id")
|
114
|
+
[1m[36m (1.1ms)[0m [1mCREATE INDEX "index_books_users_on_user_id" ON "books_users" ("user_id")[0m
|
115
|
+
[1m[35mSQL (0.3ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20170123001909"]]
|
116
|
+
[1m[36m (11.7ms)[0m [1mCOMMIT[0m
|
117
|
+
[1m[35mActiveRecord::SchemaMigration Load (0.2ms)[0m SELECT "schema_migrations".* FROM "schema_migrations"
|
118
|
+
[1m[36m (2.8ms)[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
|
119
|
+
FROM pg_constraint c
|
120
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
121
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
122
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
123
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
124
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
125
|
+
WHERE c.contype = 'f'
|
126
|
+
AND t1.relname = 'books'
|
127
|
+
AND t3.nspname = ANY (current_schemas(false))
|
128
|
+
ORDER BY c.conname
|
129
|
+
[0m
|
130
|
+
[1m[35m (3.4ms)[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
|
131
|
+
FROM pg_constraint c
|
132
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
133
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
134
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
135
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
136
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
137
|
+
WHERE c.contype = 'f'
|
138
|
+
AND t1.relname = 'books_users'
|
139
|
+
AND t3.nspname = ANY (current_schemas(false))
|
140
|
+
ORDER BY c.conname
|
141
|
+
|
142
|
+
[1m[36m (5.7ms)[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
|
143
|
+
FROM pg_constraint c
|
144
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
145
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
146
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
147
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
148
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
149
|
+
WHERE c.contype = 'f'
|
150
|
+
AND t1.relname = 'users'
|
151
|
+
AND t3.nspname = ANY (current_schemas(false))
|
152
|
+
ORDER BY c.conname
|
153
|
+
[0m
|
154
|
+
[1m[36mBook Load (1.9ms)[0m [1mSELECT "books".* FROM "books" ORDER BY "books"."id" ASC LIMIT 1[0m
|
155
|
+
[1m[35m (1.0ms)[0m SELECT COUNT(*) FROM "books"
|
156
|
+
[1m[36mActiveRecord::SchemaMigration Load (34.2ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
157
|
+
Migrating to EnableIntArrayExtension (20170123010745)
|
158
|
+
[1m[35m (0.1ms)[0m BEGIN
|
159
|
+
[1m[36mSQL (1120.1ms)[0m [1mCREATE EXTENSION IF NOT EXISTS "intarray"[0m
|
160
|
+
[1m[35mSQL (14.0ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20170123010745"]]
|
161
|
+
[1m[36m (22.1ms)[0m [1mCOMMIT[0m
|
162
|
+
[1m[35mActiveRecord::SchemaMigration Load (0.2ms)[0m SELECT "schema_migrations".* FROM "schema_migrations"
|
163
|
+
[1m[36m (8.1ms)[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
|
164
|
+
FROM pg_constraint c
|
165
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
166
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
167
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
168
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
169
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
170
|
+
WHERE c.contype = 'f'
|
171
|
+
AND t1.relname = 'books'
|
172
|
+
AND t3.nspname = ANY (current_schemas(false))
|
173
|
+
ORDER BY c.conname
|
174
|
+
[0m
|
175
|
+
[1m[35m (1.7ms)[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
|
176
|
+
FROM pg_constraint c
|
177
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
178
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
179
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
180
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
181
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
182
|
+
WHERE c.contype = 'f'
|
183
|
+
AND t1.relname = 'books_users'
|
184
|
+
AND t3.nspname = ANY (current_schemas(false))
|
185
|
+
ORDER BY c.conname
|
186
|
+
|
187
|
+
[1m[36m (1.8ms)[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
|
188
|
+
FROM pg_constraint c
|
189
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
190
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
191
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
192
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
193
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
194
|
+
WHERE c.contype = 'f'
|
195
|
+
AND t1.relname = 'users'
|
196
|
+
AND t3.nspname = ANY (current_schemas(false))
|
197
|
+
ORDER BY c.conname
|
198
|
+
[0m
|
199
|
+
[1m[36mActiveRecord::SchemaMigration Load (51.6ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
200
|
+
Migrating to CreateTags (20170125030342)
|
201
|
+
[1m[35m (6.3ms)[0m BEGIN
|
202
|
+
[1m[36m (244.7ms)[0m [1mCREATE TABLE "tags" ("id" serial primary key, "name" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
203
|
+
[1m[35mSQL (23.5ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20170125030342"]]
|
204
|
+
[1m[36m (4.8ms)[0m [1mCOMMIT[0m
|
205
|
+
Migrating to CreateLikes (20170125030446)
|
206
|
+
[1m[35m (6.1ms)[0m BEGIN
|
207
|
+
[1m[36m (25.0ms)[0m [1mCREATE TABLE "likes" ("id" serial primary key, "user_id" integer, "book_id" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
208
|
+
[1m[35m (3.2ms)[0m CREATE INDEX "index_likes_on_user_id" ON "likes" ("user_id")
|
209
|
+
[1m[36m (4.9ms)[0m [1mCREATE INDEX "index_likes_on_book_id" ON "likes" ("book_id")[0m
|
210
|
+
[1m[35m (60.4ms)[0m ALTER TABLE "likes" ADD CONSTRAINT "fk_rails_1e09b5dabf"
|
211
|
+
FOREIGN KEY ("user_id")
|
212
|
+
REFERENCES "users" ("id")
|
213
|
+
|
214
|
+
[1m[36m (0.9ms)[0m [1mALTER TABLE "likes" ADD CONSTRAINT "fk_rails_15895dfb71"
|
215
|
+
FOREIGN KEY ("book_id")
|
216
|
+
REFERENCES "books" ("id")
|
217
|
+
[0m
|
218
|
+
[1m[35mSQL (0.2ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20170125030446"]]
|
219
|
+
[1m[36m (11.8ms)[0m [1mCOMMIT[0m
|
220
|
+
[1m[35mActiveRecord::SchemaMigration Load (0.2ms)[0m SELECT "schema_migrations".* FROM "schema_migrations"
|
221
|
+
[1m[36m (4.2ms)[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
|
222
|
+
FROM pg_constraint c
|
223
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
224
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
225
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
226
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
227
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
228
|
+
WHERE c.contype = 'f'
|
229
|
+
AND t1.relname = 'books'
|
230
|
+
AND t3.nspname = ANY (current_schemas(false))
|
231
|
+
ORDER BY c.conname
|
232
|
+
[0m
|
233
|
+
[1m[35m (2.3ms)[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
|
234
|
+
FROM pg_constraint c
|
235
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
236
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
237
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
238
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
239
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
240
|
+
WHERE c.contype = 'f'
|
241
|
+
AND t1.relname = 'books_users'
|
242
|
+
AND t3.nspname = ANY (current_schemas(false))
|
243
|
+
ORDER BY c.conname
|
244
|
+
|
245
|
+
[1m[36m (3.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
|
246
|
+
FROM pg_constraint c
|
247
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
248
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
249
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
250
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
251
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
252
|
+
WHERE c.contype = 'f'
|
253
|
+
AND t1.relname = 'likes'
|
254
|
+
AND t3.nspname = ANY (current_schemas(false))
|
255
|
+
ORDER BY c.conname
|
256
|
+
[0m
|
257
|
+
[1m[35m (4.6ms)[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
|
258
|
+
FROM pg_constraint c
|
259
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
260
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
261
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
262
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
263
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
264
|
+
WHERE c.contype = 'f'
|
265
|
+
AND t1.relname = 'tags'
|
266
|
+
AND t3.nspname = ANY (current_schemas(false))
|
267
|
+
ORDER BY c.conname
|
268
|
+
|
269
|
+
[1m[36m (2.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
|
270
|
+
FROM pg_constraint c
|
271
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
272
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
273
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
274
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
275
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
276
|
+
WHERE c.contype = 'f'
|
277
|
+
AND t1.relname = 'users'
|
278
|
+
AND t3.nspname = ANY (current_schemas(false))
|
279
|
+
ORDER BY c.conname
|
280
|
+
[0m
|
281
|
+
[1m[36mBook Load (1.2ms)[0m [1mSELECT "books".* FROM "books" ORDER BY "books"."id" ASC LIMIT 1[0m
|
282
|
+
[1m[36mActiveRecord::SchemaMigration Load (27.8ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
283
|
+
Migrating to AddAuthorToBooks (20170125032813)
|
284
|
+
[1m[35m (0.2ms)[0m BEGIN
|
285
|
+
[1m[36m (27.8ms)[0m [1mALTER TABLE "books" ADD "author_id" integer[0m
|
286
|
+
[1m[35m (8.1ms)[0m CREATE INDEX "index_books_on_author_id" ON "books" ("author_id")
|
287
|
+
[1m[36m (2.3ms)[0m [1mALTER TABLE "books" ADD CONSTRAINT "fk_rails_53d51ce16a"
|
288
|
+
FOREIGN KEY ("author_id")
|
289
|
+
REFERENCES "authors" ("id")
|
290
|
+
[0m
|
291
|
+
[1m[35m (0.1ms)[0m ROLLBACK
|
292
|
+
[1m[36mActiveRecord::SchemaMigration Load (15.3ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
293
|
+
Migrating to AddAuthorToBooks (20170125032813)
|
294
|
+
[1m[35m (0.2ms)[0m BEGIN
|
295
|
+
[1m[36m (25.9ms)[0m [1mALTER TABLE "books" ADD "author_id" integer[0m
|
296
|
+
[1m[35m (8.1ms)[0m CREATE INDEX "index_books_on_author_id" ON "books" ("author_id")
|
297
|
+
[1m[36mSQL (14.5ms)[0m [1mINSERT INTO "schema_migrations" ("version") VALUES ($1)[0m [["version", "20170125032813"]]
|
298
|
+
[1m[35m (6.4ms)[0m COMMIT
|
299
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.2ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
300
|
+
[1m[35m (6.4ms)[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
|
301
|
+
FROM pg_constraint c
|
302
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
303
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
304
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
305
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
306
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
307
|
+
WHERE c.contype = 'f'
|
308
|
+
AND t1.relname = 'books'
|
309
|
+
AND t3.nspname = ANY (current_schemas(false))
|
310
|
+
ORDER BY c.conname
|
311
|
+
|
312
|
+
[1m[36m (2.9ms)[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
|
313
|
+
FROM pg_constraint c
|
314
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
315
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
316
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
317
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
318
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
319
|
+
WHERE c.contype = 'f'
|
320
|
+
AND t1.relname = 'books_users'
|
321
|
+
AND t3.nspname = ANY (current_schemas(false))
|
322
|
+
ORDER BY c.conname
|
323
|
+
[0m
|
324
|
+
[1m[35m (2.4ms)[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
|
325
|
+
FROM pg_constraint c
|
326
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
327
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
328
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
329
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
330
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
331
|
+
WHERE c.contype = 'f'
|
332
|
+
AND t1.relname = 'likes'
|
333
|
+
AND t3.nspname = ANY (current_schemas(false))
|
334
|
+
ORDER BY c.conname
|
335
|
+
|
336
|
+
[1m[36m (3.1ms)[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
|
337
|
+
FROM pg_constraint c
|
338
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
339
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
340
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
341
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
342
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
343
|
+
WHERE c.contype = 'f'
|
344
|
+
AND t1.relname = 'tags'
|
345
|
+
AND t3.nspname = ANY (current_schemas(false))
|
346
|
+
ORDER BY c.conname
|
347
|
+
[0m
|
348
|
+
[1m[35m (1.7ms)[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
|
349
|
+
FROM pg_constraint c
|
350
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
351
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
352
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
353
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
354
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
355
|
+
WHERE c.contype = 'f'
|
356
|
+
AND t1.relname = 'users'
|
357
|
+
AND t3.nspname = ANY (current_schemas(false))
|
358
|
+
ORDER BY c.conname
|
359
|
+
|
360
|
+
[1m[36m (0.2ms)[0m [1mBEGIN[0m
|
361
|
+
[1m[35mSQL (23.6ms)[0m INSERT INTO "books" ("name", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id" [["name", "hi"], ["created_at", "2017-01-25 03:28:44.002322"], ["updated_at", "2017-01-25 03:28:44.002322"]]
|
362
|
+
[1m[36m (0.8ms)[0m [1mCOMMIT[0m
|
363
|
+
[1m[35m (0.1ms)[0m BEGIN
|
364
|
+
[1m[36mSQL (4.6ms)[0m [1mINSERT INTO "users" ("name", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id"[0m [["name", "yo"], ["created_at", "2017-01-25 03:28:57.330937"], ["updated_at", "2017-01-25 03:28:57.330937"]]
|
365
|
+
[1m[35m (0.3ms)[0m COMMIT
|
366
|
+
[1m[36m (0.2ms)[0m [1mBEGIN[0m
|
367
|
+
[1m[35mSQL (24.1ms)[0m UPDATE "books" SET "author_id" = $1, "updated_at" = $2 WHERE "books"."id" = $3 [["author_id", 1], ["updated_at", "2017-01-25 03:29:09.456378"], ["id", 1]]
|
368
|
+
[1m[36m (0.4ms)[0m [1mCOMMIT[0m
|
369
|
+
[1m[35mBook Load (0.2ms)[0m SELECT "books".* FROM "books" WHERE "books"."id" = $1 LIMIT 1 [["id", 1]]
|
370
|
+
[1m[36mUser Load (0.2ms)[0m [1mSELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1[0m [["id", 1]]
|
371
|
+
[1m[35mBook Load (2.7ms)[0m SELECT "books".* FROM "books" WHERE "books"."id" = $1 LIMIT 1 [["id", 1]]
|
372
|
+
[1m[36mUser Load (7.7ms)[0m [1mSELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1[0m [["id", 1]]
|
373
|
+
[1m[36mActiveRecord::SchemaMigration Load (27.4ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
374
|
+
Migrating to CreateBooksTags (20170125034331)
|
375
|
+
[1m[35m (0.2ms)[0m BEGIN
|
376
|
+
[1m[36m (52.7ms)[0m [1mCREATE TABLE "books_tags" ("id" serial primary key, "book_id" integer, "tag_id" integer) [0m
|
377
|
+
[1m[35m (1.3ms)[0m CREATE INDEX "index_books_tags_on_book_id" ON "books_tags" ("book_id")
|
378
|
+
[1m[36m (0.7ms)[0m [1mCREATE INDEX "index_books_tags_on_tag_id" ON "books_tags" ("tag_id")[0m
|
379
|
+
[1m[35m (6.4ms)[0m ALTER TABLE "books_tags" ADD CONSTRAINT "fk_rails_a8df0c97a8"
|
380
|
+
FOREIGN KEY ("book_id")
|
381
|
+
REFERENCES "books" ("id")
|
382
|
+
|
383
|
+
[1m[36m (1.6ms)[0m [1mALTER TABLE "books_tags" ADD CONSTRAINT "fk_rails_988fcbe806"
|
384
|
+
FOREIGN KEY ("tag_id")
|
385
|
+
REFERENCES "tags" ("id")
|
386
|
+
[0m
|
387
|
+
[1m[35mSQL (8.2ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20170125034331"]]
|
388
|
+
[1m[36m (11.7ms)[0m [1mCOMMIT[0m
|
389
|
+
Migrating to RemoveBooksUsers (20170125034341)
|
390
|
+
[1m[35m (4.9ms)[0m BEGIN
|
391
|
+
[1m[36m (6.8ms)[0m [1mDROP TABLE "books_users"[0m
|
392
|
+
[1m[35mSQL (0.2ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20170125034341"]]
|
393
|
+
[1m[36m (6.2ms)[0m [1mCOMMIT[0m
|
394
|
+
[1m[35mActiveRecord::SchemaMigration Load (0.2ms)[0m SELECT "schema_migrations".* FROM "schema_migrations"
|
395
|
+
[1m[36m (8.3ms)[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
|
396
|
+
FROM pg_constraint c
|
397
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
398
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
399
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
400
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
401
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
402
|
+
WHERE c.contype = 'f'
|
403
|
+
AND t1.relname = 'books'
|
404
|
+
AND t3.nspname = ANY (current_schemas(false))
|
405
|
+
ORDER BY c.conname
|
406
|
+
[0m
|
407
|
+
[1m[35m (1.9ms)[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
|
408
|
+
FROM pg_constraint c
|
409
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
410
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
411
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
412
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
413
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
414
|
+
WHERE c.contype = 'f'
|
415
|
+
AND t1.relname = 'books_tags'
|
416
|
+
AND t3.nspname = ANY (current_schemas(false))
|
417
|
+
ORDER BY c.conname
|
418
|
+
|
419
|
+
[1m[36m (1.7ms)[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
|
420
|
+
FROM pg_constraint c
|
421
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
422
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
423
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
424
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
425
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
426
|
+
WHERE c.contype = 'f'
|
427
|
+
AND t1.relname = 'likes'
|
428
|
+
AND t3.nspname = ANY (current_schemas(false))
|
429
|
+
ORDER BY c.conname
|
430
|
+
[0m
|
431
|
+
[1m[35m (1.5ms)[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
|
432
|
+
FROM pg_constraint c
|
433
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
434
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
435
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
436
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
437
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
438
|
+
WHERE c.contype = 'f'
|
439
|
+
AND t1.relname = 'tags'
|
440
|
+
AND t3.nspname = ANY (current_schemas(false))
|
441
|
+
ORDER BY c.conname
|
442
|
+
|
443
|
+
[1m[36m (1.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
|
444
|
+
FROM pg_constraint c
|
445
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
446
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
447
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
448
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
449
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
450
|
+
WHERE c.contype = 'f'
|
451
|
+
AND t1.relname = 'users'
|
452
|
+
AND t3.nspname = ANY (current_schemas(false))
|
453
|
+
ORDER BY c.conname
|
454
|
+
[0m
|
455
|
+
[1m[36mBook Load (31.9ms)[0m [1mSELECT "books".* FROM "books" ORDER BY "books"."id" ASC LIMIT 1[0m
|
456
|
+
[1m[36mBook Load (27.3ms)[0m [1mSELECT "books".* FROM "books" ORDER BY "books"."id" ASC LIMIT 1[0m
|
457
|
+
[1m[35mBook Load (0.7ms)[0m SELECT "books".* FROM "books" ORDER BY "books"."id" ASC LIMIT 1
|
458
|
+
[1m[36mUser Load (21.7ms)[0m [1mSELECT "users".* FROM "users" INNER JOIN "likes" ON "users"."id" = "likes"."user_id" WHERE "likes"."book_id" = $1[0m [["book_id", 1]]
|
459
|
+
[1m[35mBook Load (0.8ms)[0m SELECT "books".* FROM "books" ORDER BY "books"."id" ASC LIMIT 1
|
460
|
+
[1m[36mLike Load (0.1ms)[0m [1mSELECT "likes".* FROM "likes" WHERE "likes"."book_id" = $1[0m [["book_id", 1]]
|
461
|
+
[1m[35mBook Load (0.7ms)[0m SELECT "books".* FROM "books" ORDER BY "books"."id" ASC LIMIT 1 OFFSET 1
|
462
|
+
[1m[36m (0.2ms)[0m [1mBEGIN[0m
|
463
|
+
[1m[35mSQL (17.8ms)[0m INSERT INTO "books" ("name", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id" [["name", "second"], ["created_at", "2017-01-26 02:41:43.094744"], ["updated_at", "2017-01-26 02:41:43.094744"]]
|
464
|
+
[1m[36m (6.3ms)[0m [1mCOMMIT[0m
|
465
|
+
[1m[35m (0.1ms)[0m BEGIN
|
466
|
+
[1m[36mSQL (0.3ms)[0m [1mINSERT INTO "books" ("name", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id"[0m [["name", "third"], ["created_at", "2017-01-26 02:41:49.422892"], ["updated_at", "2017-01-26 02:41:49.422892"]]
|
467
|
+
[1m[35m (2.0ms)[0m COMMIT
|
468
|
+
[1m[36mBook Load (0.6ms)[0m [1mSELECT "books".* FROM "books" ORDER BY "books"."id" ASC LIMIT 1[0m
|
469
|
+
[1m[35mLike Load (0.2ms)[0m SELECT "likes".* FROM "likes" WHERE "likes"."book_id" = $1 [["book_id", 1]]
|
470
|
+
[1m[36mBook Load (0.7ms)[0m [1mSELECT "books".* FROM "books" ORDER BY "books"."id" ASC LIMIT 1[0m
|
471
|
+
[1m[35mUser Load (2.1ms)[0m SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT 1
|
472
|
+
[1m[36m (0.1ms)[0m [1mBEGIN[0m
|
473
|
+
[1m[35mSQL (27.7ms)[0m INSERT INTO "likes" ("book_id", "user_id", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["book_id", 1], ["user_id", 1], ["created_at", "2017-01-26 02:42:00.848509"], ["updated_at", "2017-01-26 02:42:00.848509"]]
|
474
|
+
[1m[36m (0.7ms)[0m [1mCOMMIT[0m
|
475
|
+
[1m[35mUser Load (0.3ms)[0m SELECT "users".* FROM "users" INNER JOIN "likes" ON "users"."id" = "likes"."user_id" WHERE "likes"."book_id" = $1 [["book_id", 1]]
|
476
|
+
[1m[36m (0.2ms)[0m [1mBEGIN[0m
|
477
|
+
[1m[35mSQL (1.8ms)[0m INSERT INTO "users" ("name", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id" [["name", "second"], ["created_at", "2017-01-26 02:42:06.119572"], ["updated_at", "2017-01-26 02:42:06.119572"]]
|
478
|
+
[1m[36m (2.8ms)[0m [1mCOMMIT[0m
|
479
|
+
[1m[35mBook Load (0.7ms)[0m SELECT "books".* FROM "books" ORDER BY "books"."id" ASC LIMIT 1
|
480
|
+
[1m[36m (0.2ms)[0m [1mBEGIN[0m
|
481
|
+
[1m[35mSQL (0.4ms)[0m INSERT INTO "likes" ("book_id", "user_id", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["book_id", 1], ["user_id", 2], ["created_at", "2017-01-26 02:42:17.860271"], ["updated_at", "2017-01-26 02:42:17.860271"]]
|
482
|
+
[1m[36m (3.4ms)[0m [1mCOMMIT[0m
|
483
|
+
[1m[35mUser Load (0.2ms)[0m SELECT "users".* FROM "users" INNER JOIN "likes" ON "users"."id" = "likes"."user_id" WHERE "likes"."book_id" = $1 [["book_id", 1]]
|
484
|
+
[1m[36mBook Load (0.5ms)[0m [1mSELECT "books".* FROM "books" ORDER BY "books"."id" ASC LIMIT 1 OFFSET 1[0m
|
485
|
+
[1m[35mUser Load (0.3ms)[0m SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT 1
|
486
|
+
[1m[36m (0.2ms)[0m [1mBEGIN[0m
|
487
|
+
[1m[35mSQL (0.4ms)[0m INSERT INTO "likes" ("book_id", "user_id", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["book_id", 2], ["user_id", 1], ["created_at", "2017-01-26 02:42:21.008328"], ["updated_at", "2017-01-26 02:42:21.008328"]]
|
488
|
+
[1m[36m (2.8ms)[0m [1mCOMMIT[0m
|
489
|
+
[1m[35mUser Load (0.3ms)[0m SELECT "users".* FROM "users" INNER JOIN "likes" ON "users"."id" = "likes"."user_id" WHERE "likes"."book_id" = $1 [["book_id", 2]]
|
490
|
+
[1m[36mBook Load (0.7ms)[0m [1mSELECT "books".* FROM "books" ORDER BY "books"."id" ASC LIMIT 1 OFFSET 2[0m
|
491
|
+
[1m[35m (0.2ms)[0m BEGIN
|
492
|
+
[1m[36mSQL (0.3ms)[0m [1mINSERT INTO "likes" ("book_id", "user_id", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id"[0m [["book_id", 3], ["user_id", 2], ["created_at", "2017-01-26 02:42:24.946072"], ["updated_at", "2017-01-26 02:42:24.946072"]]
|
493
|
+
[1m[35m (1.4ms)[0m COMMIT
|
494
|
+
[1m[36mUser Load (0.2ms)[0m [1mSELECT "users".* FROM "users" INNER JOIN "likes" ON "users"."id" = "likes"."user_id" WHERE "likes"."book_id" = $1[0m [["book_id", 3]]
|
495
|
+
[1m[35mBook Load (0.8ms)[0m SELECT "books".* FROM "books" ORDER BY "books"."id" ASC LIMIT 1
|
496
|
+
[1m[36mBook Load (41.0ms)[0m [1m WITH similar_items AS (
|
497
|
+
SELECT
|
498
|
+
t2.book_id,
|
499
|
+
(# (array_agg(DISTINCT t1.user_id) & array_agg(DISTINCT t2.user_id)))::float/
|
500
|
+
(# (array_agg(DISTINCT t1.user_id) | array_agg(DISTINCT t2.user_id)))::float as similarity
|
501
|
+
FROM likes AS t1, likes AS t2
|
502
|
+
WHERE t1.book_id = 1 and t2.book_id != 1
|
503
|
+
GROUP BY t2.book_id
|
504
|
+
ORDER BY similarity DESC
|
505
|
+
LIMIT 10
|
506
|
+
)
|
507
|
+
SELECT books.*, similarity
|
508
|
+
FROM similar_items
|
509
|
+
JOIN books ON books.id = similar_items.book_id
|
510
|
+
ORDER BY similarity DESC;
|
511
|
+
[0m
|