hide_ancestry 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (27) hide show
  1. checksums.yaml +4 -4
  2. data/lib/generators/hide_ancestry_migration/hide_ancestry_migration_generator.rb +2 -2
  3. data/lib/generators/hide_ancestry_migration/templates/hide_ancestry_migration.rb +1 -1
  4. data/lib/hide_ancestry/has_hide_ancestry.rb +8 -8
  5. data/lib/hide_ancestry/instance_methods.rb +28 -28
  6. data/lib/hide_ancestry/model_manage/base.rb +3 -3
  7. data/lib/hide_ancestry/model_manage/custom_ancestry_updater.rb +23 -23
  8. data/lib/hide_ancestry/model_manage/hide.rb +2 -2
  9. data/lib/hide_ancestry/model_manage/restore.rb +2 -2
  10. data/lib/hide_ancestry/validators.rb +1 -1
  11. data/lib/hide_ancestry/version.rb +1 -1
  12. data/spec/dummy/db/development.sqlite3 +0 -0
  13. data/spec/dummy/db/migrate/20161217174321_add_hide_ancestry_cols_to_monkeys.rb +1 -1
  14. data/spec/dummy/db/schema.rb +1 -1
  15. data/spec/dummy/db/test.sqlite3 +0 -0
  16. data/spec/dummy/log/development.log +414 -0
  17. data/spec/dummy/log/test.log +12651 -0
  18. data/spec/factories/monkey.rb +1 -1
  19. data/spec/lib/hide_ancestry/instance_methods_spec.rb +29 -29
  20. data/spec/lib/hide_ancestry/model_manage/custom_ancestry_updater/cases/{hided_nodes_cases_spec.rb → hidden_nodes_cases_spec.rb} +12 -12
  21. data/spec/lib/hide_ancestry/model_manage/hide_spec.rb +6 -6
  22. data/spec/lib/hide_ancestry/model_manage/restore_spec.rb +6 -6
  23. data/spec/lib/hide_ancestry/model_manage/validators_spec.rb +5 -5
  24. data/spec/models/bonobo_spec.rb +1 -1
  25. data/spec/support/shared_examples/has_hide_ancestry_examples.rb +4 -4
  26. data/spec/support/shared_examples/instance_methods_examples.rb +9 -9
  27. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6896f8d4da00188c49b6e13c59ed6c544a0fc4d0
4
- data.tar.gz: 47bfa1703622d8a18eb862bb49663a8eab97d7c3
3
+ metadata.gz: 309299b42286c3a91f1840aafec3829c9f8c16fe
4
+ data.tar.gz: 2bc381935d565c9ca7a7ecdde61b7399247bfe82
5
5
  SHA512:
6
- metadata.gz: 03111e0d1a6c9d9d1fc69d932f50f4b53b5d4afef463eada77f063871f9171f17ca4ff3c4b99907f765dddacb46789b33807c23ddae1751428f0ca0a46a668a0
7
- data.tar.gz: 31bb8f7ee84c83801a80d2b965f218ca1b5e3a2435fb07d9f7972812e0ee83ec9dc251b0c49a9c577b555a11054246c66a6f673d876edf942892fab7d12b9d12
6
+ metadata.gz: 4d18a5bdd9d77e3de1a8c1414a296d9c17bb5d099d994eb486e3dc6af6b974fa0d2652b74df183a1f57c5c6638d2b1393942e006f645d9044ba11d87bee48425
7
+ data.tar.gz: 9e24cad28efb10076a213fd12d89b3d59fd80e1887970801435064a71f49c7cce1b01a7b1ed58f4c476ccffc5bfd6859a5b4a8bdfff95cdea8936033c084e569
@@ -4,10 +4,10 @@ class HideAncestryMigrationGenerator < Rails::Generators::Base
4
4
  source_root File.expand_path('../templates', __FILE__)
5
5
  argument :table_name, type: :string
6
6
 
7
- class_option :hiden_status,
7
+ class_option :hidden_status,
8
8
  type: :boolean,
9
9
  default: true,
10
- desc: 'Create hiden_status:boolean column'
10
+ desc: 'Create hidden_status:boolean column'
11
11
 
12
12
  def create_migration_file_in_app
13
13
  migration_template(
@@ -4,7 +4,7 @@ class <%=migration_class_name%> < ActiveRecord::Migration
4
4
  t.integer :old_parent_id
5
5
  t.text :old_child_ids
6
6
  t.string :hide_ancestry
7
- <%='t.boolean :hiden_status, default: false' if options.hiden_status?%>
7
+ <%='t.boolean :hidden_status, default: false' if options.hidden_status?%>
8
8
  end
9
9
  end
10
10
  end
@@ -17,8 +17,8 @@ module HasHideAncestry
17
17
  end
18
18
  end
19
19
 
20
- cattr_accessor :hiden_column
21
- self.hiden_column = options[:use_column] || :hiden_status
20
+ cattr_accessor :hidden_column
21
+ self.hidden_column = options[:use_column] || :hidden_status
22
22
 
23
23
  # Include validation errors to the model
24
24
  include HideAncestry::Validators
@@ -28,10 +28,10 @@ module HasHideAncestry
28
28
 
29
29
  serialize :old_child_ids, Array
30
30
 
31
- scope :hiden, -> { where hiden_column => true }
32
- scope :unhiden, -> { where.not(hiden_column => true) }
33
- scope :hiden_nodes, -> (ids) { hiden.where id: ids }
34
- scope :hiden_childs, -> (some_id) { hiden.where old_parent_id: some_id }
31
+ scope :hidden, -> { where hidden_column => true }
32
+ scope :unhidden, -> { where.not(hidden_column => true) }
33
+ scope :hidden_nodes, -> (ids) { hidden.where id: ids }
34
+ scope :hidden_childs, -> (some_id) { hidden.where old_parent_id: some_id }
35
35
 
36
36
  # Persist record changes for correct work of #previous_changes
37
37
  before_save do |record|
@@ -42,8 +42,8 @@ module HasHideAncestry
42
42
  HideAncestry::ModelManage::CustomAncestryUpdater.call(record)
43
43
  end
44
44
 
45
- # hiden node can not change ancestry
46
- validate :can_not_has_parent_or_children, if: -> { hiden? }
45
+ # hidden node can not change ancestry
46
+ validate :can_not_has_parent_or_children, if: -> { hidden? }
47
47
  end
48
48
  end
49
49
  end
@@ -7,7 +7,7 @@ module HideAncestry
7
7
 
8
8
  def restore
9
9
  return not_valid unless valid?
10
- return already_restored unless public_send(hiden_column) == true
10
+ return already_restored unless public_send(hidden_column) == true
11
11
  HideAncestry::ModelManage::Restore.call(self)
12
12
  end
13
13
 
@@ -17,70 +17,70 @@ module HideAncestry
17
17
  old_parent_changes.first.nil?
18
18
  end
19
19
 
20
- def hiden?
21
- self.public_send(hiden_column) == true
20
+ def hidden?
21
+ self.public_send(hidden_column) == true
22
22
  end
23
23
 
24
24
  def hide_ancestry_ids
25
25
  hide_ancestry.split('/').map(&:to_i) if hide_ancestry
26
26
  end
27
27
 
28
- def children_of_hiden
28
+ def children_of_hidden
29
29
  self.class.where id: old_child_ids
30
30
  end
31
31
 
32
- def hiden_children
33
- self.class.hiden.where old_parent_id: id
32
+ def hidden_children
33
+ self.class.hidden.where old_parent_id: id
34
34
  end
35
35
 
36
- def hiden_parent_changed?
37
- sought_parent = hiden_parent
36
+ def hidden_parent_changed?
37
+ sought_parent = hidden_parent
38
38
  return false unless sought_parent
39
39
 
40
- # Existing parent (for hiden node and child of hiden) should be the same;
40
+ # Existing parent (for hidden node and child of hidden) should be the same;
41
41
  # if not - means than child changed it parent
42
42
  grandparent = sought_parent.find_first_real_parent
43
43
  grandparent&.id != parent_id
44
44
  end
45
45
 
46
- def subtree_with_hiden
46
+ def subtree_with_hidden
47
47
  sub_ids = subtree.pluck(:id)
48
- ids_for_search = sub_ids + hiden_descendants_ids
48
+ ids_for_search = sub_ids + hidden_descendants_ids
49
49
  relation = self.class.where id: ids_for_search
50
50
  relation.order(hide_ancestry: :asc)
51
51
  end
52
52
 
53
- def depth_with_hiden
53
+ def depth_with_hidden
54
54
  hide_ancestry_ids.size
55
55
  end
56
56
 
57
- def hiden_parent
57
+ def hidden_parent
58
58
  sought_parent =
59
- self.class.hiden.select do |u|
59
+ self.class.hidden.select do |u|
60
60
  u.old_child_ids.include? id
61
61
  end
62
62
  sought_parent.blank? ? nil : sought_parent.first
63
63
  end
64
64
 
65
- def hiden_children_present?
66
- self.class.hiden_childs(id).present?
65
+ def hidden_children_present?
66
+ self.class.hidden_childs(id).present?
67
67
  end
68
68
 
69
- def hiden_descendants_ids
69
+ def hidden_descendants_ids
70
70
  ids = []
71
- iterate_desc_for_hiden(ids)
72
- iterate_hiden_desc(ids)
71
+ iterate_desc_for_hidden(ids)
72
+ iterate_hidden_desc(ids)
73
73
  ids.uniq
74
74
  end
75
75
 
76
- def hiden_ids
77
- self.class.hiden.pluck(:id)
76
+ def hidden_ids
77
+ self.class.hidden.pluck(:id)
78
78
  end
79
79
 
80
80
  def find_first_real_parent
81
81
  parent_usr = self.class.find_by id: old_parent_id
82
82
  return parent unless parent_usr
83
- parent_usr.hiden? ? parent_usr.find_first_real_parent : parent_usr
83
+ parent_usr.hidden? ? parent_usr.find_first_real_parent : parent_usr
84
84
  end
85
85
 
86
86
  # Monkeypatching ActiveModel::Dirty method
@@ -92,16 +92,16 @@ module HideAncestry
92
92
 
93
93
  protected
94
94
 
95
- def iterate_desc_for_hiden(array)
95
+ def iterate_desc_for_hidden(array)
96
96
  descendants.each do |user|
97
- user.hiden_children.each { |child| array << child.id }
97
+ user.hidden_children.each { |child| array << child.id }
98
98
  end
99
99
  end
100
100
 
101
- def iterate_hiden_desc(array)
102
- hiden_children.each do |hiden_child|
103
- array << hiden_child.id
104
- hiden_child.iterate_hiden_desc(array)
101
+ def iterate_hidden_desc(array)
102
+ hidden_children.each do |hidden_child|
103
+ array << hidden_child.id
104
+ hidden_child.iterate_hidden_desc(array)
105
105
  end
106
106
  end
107
107
  end
@@ -14,11 +14,11 @@ module HideAncestry
14
14
  private
15
15
 
16
16
  def find_actual_parent(instance)
17
- instance.hiden_parent ? instance.hiden_parent : instance.parent
17
+ instance.hidden_parent ? instance.hidden_parent : instance.parent
18
18
  end
19
19
 
20
- def change_hiden_status(boolean)
21
- instance.update_attribute instance.hiden_column, boolean
20
+ def change_hidden_status(boolean)
21
+ instance.update_attribute instance.hidden_column, boolean
22
22
  end
23
23
  end
24
24
  end
@@ -2,63 +2,63 @@ module HideAncestry
2
2
  module ModelManage
3
3
  class CustomAncestryUpdater < Base
4
4
  def call
5
- # If descendant of hiden node will change its parent
6
- clean_instance_from_hiden_parent if instance.hiden_parent_changed?
7
- change_hide_ancestry_col(instance) unless instance.hiden?
5
+ # If descendant of hidden node will change its parent
6
+ clean_instance_from_hidden_parent if instance.hidden_parent_changed?
7
+ change_hide_ancestry_col(instance) unless instance.hidden?
8
8
 
9
9
  # First, general iteration; useful when node updated
10
10
  instance.children.each { |child| update_each_child(child, instance) }
11
11
 
12
- # Fix nodes with #hiden? and its descendant nodes
13
- instance.hiden_children.each do |hiden_children|
14
- update_hiden_with_descendants(hiden_children, instance)
12
+ # Fix nodes with #hidden? and its descendant nodes
13
+ instance.hidden_children.each do |hidden_children|
14
+ update_hidden_with_descendants(hidden_children, instance)
15
15
  end
16
16
  end
17
17
 
18
18
  private
19
19
 
20
20
  def change_hide_ancestry_col(instance, custom_parent = nil)
21
- custom_parent = instance.hiden_parent unless custom_parent
21
+ custom_parent = instance.hidden_parent unless custom_parent
22
22
  set_hide_ancestry(instance, custom_parent)
23
23
  end
24
24
 
25
25
  # Remove node_1#id from node_2#old_child_ids;
26
- # node_2 should be hiden
27
- def clean_instance_from_hiden_parent
28
- return if instance.hiden?
26
+ # node_2 should be hidden
27
+ def clean_instance_from_hidden_parent
28
+ return if instance.hidden?
29
29
 
30
30
  new_array =
31
- instance.hiden_parent&.old_child_ids.reject { |el| el == instance.id }
32
- instance.hiden_parent
31
+ instance.hidden_parent&.old_child_ids.reject { |el| el == instance.id }
32
+ instance.hidden_parent
33
33
  .update_attribute(:old_child_ids, new_array)
34
34
  end
35
35
 
36
36
  def update_each_child(instance, parent)
37
37
  change_hide_ancestry_col(instance, parent)
38
- update_hiden_children_cols(instance) if instance.hiden_children_present?
38
+ update_hidden_children_cols(instance) if instance.hidden_children_present?
39
39
 
40
40
  instance.children.each { |child| update_each_child(child, instance) }
41
41
  end
42
42
 
43
- # Udpate alternate ancestry cols of node#hiden? and its descendant
44
- def update_hiden_with_descendants(instance, parent)
43
+ # Udpate alternate ancestry cols of node#hidden? and its descendant
44
+ def update_hidden_with_descendants(instance, parent)
45
45
  change_hide_ancestry_col(instance, parent)
46
46
 
47
- if instance.hiden?
48
- instance.children_of_hiden.each do |child|
49
- update_hiden_with_descendants(child, instance)
47
+ if instance.hidden?
48
+ instance.children_of_hidden.each do |child|
49
+ update_hidden_with_descendants(child, instance)
50
50
  end
51
51
  else
52
52
  instance.children.each do |child|
53
- update_hiden_children_cols(child) if instance.hiden_children_present?
54
- update_hiden_with_descendants(child, instance)
53
+ update_hidden_children_cols(child) if instance.hidden_children_present?
54
+ update_hidden_with_descendants(child, instance)
55
55
  end
56
56
  end
57
57
  end
58
58
 
59
- def update_hiden_children_cols(instance)
60
- instance.hiden_children.each do |hiden_child|
61
- change_hide_ancestry_col(hiden_child, instance)
59
+ def update_hidden_children_cols(instance)
60
+ instance.hidden_children.each do |hidden_child|
61
+ change_hide_ancestry_col(hidden_child, instance)
62
62
  end
63
63
  end
64
64
 
@@ -3,7 +3,7 @@ module HideAncestry
3
3
  class Hide < Base
4
4
  def call
5
5
  instance.reload
6
- change_hiden_status(true)
6
+ change_hidden_status(true)
7
7
  save_parent_id
8
8
 
9
9
  save_child_ids
@@ -20,7 +20,7 @@ module HideAncestry
20
20
 
21
21
  def save_child_ids
22
22
  actual_children = []
23
- collections = [:children, :hiden_children]
23
+ collections = [:children, :hidden_children]
24
24
 
25
25
  collections.each { |coll| save_sub_ids(coll, actual_children) }
26
26
 
@@ -5,7 +5,7 @@ module HideAncestry
5
5
  instance.reload
6
6
  restore_parent
7
7
  restore_children
8
- change_hiden_status(false)
8
+ change_hidden_status(false)
9
9
  end
10
10
 
11
11
  private
@@ -21,7 +21,7 @@ module HideAncestry
21
21
  child = instance.class.find_by id: child_id
22
22
 
23
23
  next unless child
24
- next if child.hiden?
24
+ next if child.hidden?
25
25
 
26
26
  child.update_attribute :parent_id, instance.id
27
27
  end
@@ -5,7 +5,7 @@ module HideAncestry
5
5
  def can_not_has_parent_or_children
6
6
  errors.add(
7
7
  :base,
8
- "hiden node can`t has any real parent or children"
8
+ "hidden node can`t has any real parent or children"
9
9
  ) if self.ancestry.present?
10
10
  end
11
11
 
@@ -1,3 +1,3 @@
1
1
  module HideAncestry
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
Binary file
@@ -4,7 +4,7 @@ class AddHideAncestryColsToMonkeys < ActiveRecord::Migration
4
4
  t.integer :old_parent_id
5
5
  t.text :old_child_ids
6
6
  t.string :hide_ancestry
7
- t.boolean :hiden_status, default: false
7
+ t.boolean :hidden_status, default: false
8
8
  end
9
9
  end
10
10
  end
@@ -38,7 +38,7 @@ ActiveRecord::Schema.define(version: 20161219150554) do
38
38
  t.integer "old_parent_id"
39
39
  t.text "old_child_ids"
40
40
  t.string "hide_ancestry"
41
- t.boolean "hiden_status", default: false
41
+ t.boolean "hidden_status", default: false
42
42
  t.string "name"
43
43
  end
44
44
 
Binary file
@@ -3633,3 +3633,417 @@ Migrating to AddAncestryToChimpanzees (20161219150554)
3633
3633
   (88.3ms) INSERT INTO "schema_migrations" (version) VALUES ('20161219150540')
3634
3634
   (66.1ms) INSERT INTO "schema_migrations" (version) VALUES ('20161216194357')
3635
3635
   (88.3ms) INSERT INTO "schema_migrations" (version) VALUES ('20161217174027')
3636
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
3637
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
3638
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
3639
+ Migrating to AddAncestryToChimpanzees (20161219150554)
3640
+  (0.0ms) begin transaction
3641
+  (0.1ms)  SELECT sql
3642
+ FROM sqlite_master
3643
+ WHERE name='index_chimpanzees_on_ancestry' AND type='index'
3644
+ UNION ALL
3645
+ SELECT sql
3646
+ FROM sqlite_temp_master
3647
+ WHERE name='index_chimpanzees_on_ancestry' AND type='index'
3648
+ 
3649
+  (0.2ms) DROP INDEX "index_chimpanzees_on_ancestry"
3650
+  (0.2ms) CREATE TEMPORARY TABLE "achimpanzees" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "ancestry" varchar) 
3651
+  (0.0ms) SELECT * FROM "chimpanzees"
3652
+  (0.2ms) DROP TABLE "chimpanzees"
3653
+  (0.1ms) CREATE TABLE "chimpanzees" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
3654
+  (0.0ms) SELECT * FROM "achimpanzees"
3655
+  (0.1ms) DROP TABLE "achimpanzees"
3656
+ SQL (0.1ms) DELETE FROM "schema_migrations" WHERE "schema_migrations"."version" = ? [["version", "20161219150554"]]
3657
+  (45.9ms) commit transaction
3658
+ Migrating to CreateChimpanzee (20161219150540)
3659
+  (0.1ms) begin transaction
3660
+  (0.3ms) DROP TABLE "chimpanzees"
3661
+ SQL (0.1ms) DELETE FROM "schema_migrations" WHERE "schema_migrations"."version" = ? [["version", "20161219150540"]]
3662
+  (64.4ms) commit transaction
3663
+ Migrating to AddNameToMonkeys (20161218161330)
3664
+  (0.1ms) begin transaction
3665
+  (0.2ms) CREATE TEMPORARY TABLE "amonkeys" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "ancestry" varchar, "old_parent_id" integer, "old_child_ids" text, "hide_ancestry" varchar, "hiden_status" boolean DEFAULT 'f', "name" varchar)
3666
+  (0.1ms)  SELECT sql
3667
+ FROM sqlite_master
3668
+ WHERE name='index_monkeys_on_ancestry' AND type='index'
3669
+ UNION ALL
3670
+ SELECT sql
3671
+ FROM sqlite_temp_master
3672
+ WHERE name='index_monkeys_on_ancestry' AND type='index'
3673
+ 
3674
+  (0.0ms) select sqlite_version(*)
3675
+  (0.1ms) CREATE INDEX "tindex_amonkeys_on_ancestry" ON "amonkeys" ("ancestry")
3676
+  (0.1ms) SELECT * FROM "monkeys"
3677
+  (0.2ms) DROP TABLE "monkeys"
3678
+  (0.1ms) CREATE TABLE "monkeys" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "ancestry" varchar, "old_parent_id" integer, "old_child_ids" text, "hide_ancestry" varchar, "hiden_status" boolean DEFAULT 'f')
3679
+  (0.1ms)  SELECT sql
3680
+ FROM sqlite_master
3681
+ WHERE name='tindex_amonkeys_on_ancestry' AND type='index'
3682
+ UNION ALL
3683
+ SELECT sql
3684
+ FROM sqlite_temp_master
3685
+ WHERE name='tindex_amonkeys_on_ancestry' AND type='index'
3686
+ 
3687
+  (0.1ms) CREATE INDEX "index_monkeys_on_ancestry" ON "monkeys" ("ancestry")
3688
+  (0.1ms) SELECT * FROM "amonkeys"
3689
+  (0.1ms) DROP TABLE "amonkeys"
3690
+ SQL (0.1ms) DELETE FROM "schema_migrations" WHERE "schema_migrations"."version" = ? [["version", "20161218161330"]]
3691
+  (49.2ms) commit transaction
3692
+ Migrating to AddHideAncestryColsToBonobos (20161217174356)
3693
+  (0.1ms) begin transaction
3694
+  (0.2ms) CREATE TEMPORARY TABLE "abonobos" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "ancestry" varchar, "hide_bonobo" boolean DEFAULT 'f', "old_parent_id" integer, "old_child_ids" text, "hide_ancestry" varchar)
3695
+  (0.1ms)  SELECT sql
3696
+ FROM sqlite_master
3697
+ WHERE name='index_bonobos_on_ancestry' AND type='index'
3698
+ UNION ALL
3699
+ SELECT sql
3700
+ FROM sqlite_temp_master
3701
+ WHERE name='index_bonobos_on_ancestry' AND type='index'
3702
+ 
3703
+  (0.1ms) CREATE INDEX "tindex_abonobos_on_ancestry" ON "abonobos" ("ancestry")
3704
+  (0.1ms) SELECT * FROM "bonobos"
3705
+  (0.2ms) DROP TABLE "bonobos"
3706
+  (0.1ms) CREATE TABLE "bonobos" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "ancestry" varchar, "hide_bonobo" boolean DEFAULT 'f', "old_parent_id" integer, "old_child_ids" text) 
3707
+  (0.1ms) SELECT sql
3708
+ FROM sqlite_master
3709
+ WHERE name='tindex_abonobos_on_ancestry' AND type='index'
3710
+ UNION ALL
3711
+ SELECT sql
3712
+ FROM sqlite_temp_master
3713
+ WHERE name='tindex_abonobos_on_ancestry' AND type='index'
3714
+
3715
+  (0.1ms) CREATE INDEX "index_bonobos_on_ancestry" ON "bonobos" ("ancestry")
3716
+  (0.1ms) SELECT * FROM "abonobos"
3717
+  (0.2ms) DROP TABLE "abonobos"
3718
+  (0.2ms) CREATE TEMPORARY TABLE "abonobos" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "ancestry" varchar, "hide_bonobo" boolean DEFAULT 'f', "old_parent_id" integer, "old_child_ids" text)
3719
+  (0.1ms)  SELECT sql
3720
+ FROM sqlite_master
3721
+ WHERE name='index_bonobos_on_ancestry' AND type='index'
3722
+ UNION ALL
3723
+ SELECT sql
3724
+ FROM sqlite_temp_master
3725
+ WHERE name='index_bonobos_on_ancestry' AND type='index'
3726
+ 
3727
+  (0.1ms) CREATE INDEX "tindex_abonobos_on_ancestry" ON "abonobos" ("ancestry")
3728
+  (0.1ms) SELECT * FROM "bonobos"
3729
+  (0.4ms) DROP TABLE "bonobos"
3730
+  (0.2ms) CREATE TABLE "bonobos" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "ancestry" varchar, "hide_bonobo" boolean DEFAULT 'f', "old_parent_id" integer) 
3731
+  (0.1ms) SELECT sql
3732
+ FROM sqlite_master
3733
+ WHERE name='tindex_abonobos_on_ancestry' AND type='index'
3734
+ UNION ALL
3735
+ SELECT sql
3736
+ FROM sqlite_temp_master
3737
+ WHERE name='tindex_abonobos_on_ancestry' AND type='index'
3738
+
3739
+  (0.2ms) CREATE INDEX "index_bonobos_on_ancestry" ON "bonobos" ("ancestry")
3740
+  (0.1ms) SELECT * FROM "abonobos"
3741
+  (0.2ms) DROP TABLE "abonobos"
3742
+  (0.2ms) CREATE TEMPORARY TABLE "abonobos" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "ancestry" varchar, "hide_bonobo" boolean DEFAULT 'f', "old_parent_id" integer)
3743
+  (0.1ms)  SELECT sql
3744
+ FROM sqlite_master
3745
+ WHERE name='index_bonobos_on_ancestry' AND type='index'
3746
+ UNION ALL
3747
+ SELECT sql
3748
+ FROM sqlite_temp_master
3749
+ WHERE name='index_bonobos_on_ancestry' AND type='index'
3750
+ 
3751
+  (0.1ms) CREATE INDEX "tindex_abonobos_on_ancestry" ON "abonobos" ("ancestry")
3752
+  (0.1ms) SELECT * FROM "bonobos"
3753
+  (0.1ms) DROP TABLE "bonobos"
3754
+  (0.1ms) CREATE TABLE "bonobos" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "ancestry" varchar, "hide_bonobo" boolean DEFAULT 'f') 
3755
+  (0.1ms) SELECT sql
3756
+ FROM sqlite_master
3757
+ WHERE name='tindex_abonobos_on_ancestry' AND type='index'
3758
+ UNION ALL
3759
+ SELECT sql
3760
+ FROM sqlite_temp_master
3761
+ WHERE name='tindex_abonobos_on_ancestry' AND type='index'
3762
+
3763
+  (0.1ms) CREATE INDEX "index_bonobos_on_ancestry" ON "bonobos" ("ancestry")
3764
+  (0.1ms) SELECT * FROM "abonobos"
3765
+  (0.1ms) DROP TABLE "abonobos"
3766
+ SQL (0.1ms) DELETE FROM "schema_migrations" WHERE "schema_migrations"."version" = ? [["version", "20161217174356"]]
3767
+  (81.2ms) commit transaction
3768
+ Migrating to AddHideAncestryColsToMonkeys (20161217174321)
3769
+  (0.1ms) begin transaction
3770
+  (0.2ms) CREATE TEMPORARY TABLE "amonkeys" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "ancestry" varchar, "old_parent_id" integer, "old_child_ids" text, "hide_ancestry" varchar, "hiden_status" boolean DEFAULT 'f') 
3771
+  (0.1ms) SELECT sql
3772
+ FROM sqlite_master
3773
+ WHERE name='index_monkeys_on_ancestry' AND type='index'
3774
+ UNION ALL
3775
+ SELECT sql
3776
+ FROM sqlite_temp_master
3777
+ WHERE name='index_monkeys_on_ancestry' AND type='index'
3778
+
3779
+  (0.1ms) CREATE INDEX "tindex_amonkeys_on_ancestry" ON "amonkeys" ("ancestry")
3780
+  (0.1ms) SELECT * FROM "monkeys"
3781
+  (0.2ms) DROP TABLE "monkeys"
3782
+  (0.1ms) CREATE TABLE "monkeys" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "ancestry" varchar, "old_parent_id" integer, "old_child_ids" text, "hide_ancestry" varchar)
3783
+  (0.1ms)  SELECT sql
3784
+ FROM sqlite_master
3785
+ WHERE name='tindex_amonkeys_on_ancestry' AND type='index'
3786
+ UNION ALL
3787
+ SELECT sql
3788
+ FROM sqlite_temp_master
3789
+ WHERE name='tindex_amonkeys_on_ancestry' AND type='index'
3790
+ 
3791
+  (0.1ms) CREATE INDEX "index_monkeys_on_ancestry" ON "monkeys" ("ancestry")
3792
+  (0.1ms) SELECT * FROM "amonkeys"
3793
+  (0.1ms) DROP TABLE "amonkeys"
3794
+  (0.1ms) CREATE TEMPORARY TABLE "amonkeys" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "ancestry" varchar, "old_parent_id" integer, "old_child_ids" text, "hide_ancestry" varchar) 
3795
+  (0.1ms) SELECT sql
3796
+ FROM sqlite_master
3797
+ WHERE name='index_monkeys_on_ancestry' AND type='index'
3798
+ UNION ALL
3799
+ SELECT sql
3800
+ FROM sqlite_temp_master
3801
+ WHERE name='index_monkeys_on_ancestry' AND type='index'
3802
+
3803
+  (0.1ms) CREATE INDEX "tindex_amonkeys_on_ancestry" ON "amonkeys" ("ancestry")
3804
+  (0.1ms) SELECT * FROM "monkeys"
3805
+  (0.2ms) DROP TABLE "monkeys"
3806
+  (0.1ms) CREATE TABLE "monkeys" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "ancestry" varchar, "old_parent_id" integer, "old_child_ids" text)
3807
+  (0.1ms)  SELECT sql
3808
+ FROM sqlite_master
3809
+ WHERE name='tindex_amonkeys_on_ancestry' AND type='index'
3810
+ UNION ALL
3811
+ SELECT sql
3812
+ FROM sqlite_temp_master
3813
+ WHERE name='tindex_amonkeys_on_ancestry' AND type='index'
3814
+ 
3815
+  (0.1ms) CREATE INDEX "index_monkeys_on_ancestry" ON "monkeys" ("ancestry")
3816
+  (0.1ms) SELECT * FROM "amonkeys"
3817
+  (0.1ms) DROP TABLE "amonkeys"
3818
+  (0.1ms) CREATE TEMPORARY TABLE "amonkeys" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "ancestry" varchar, "old_parent_id" integer, "old_child_ids" text) 
3819
+  (0.1ms) SELECT sql
3820
+ FROM sqlite_master
3821
+ WHERE name='index_monkeys_on_ancestry' AND type='index'
3822
+ UNION ALL
3823
+ SELECT sql
3824
+ FROM sqlite_temp_master
3825
+ WHERE name='index_monkeys_on_ancestry' AND type='index'
3826
+
3827
+  (0.1ms) CREATE INDEX "tindex_amonkeys_on_ancestry" ON "amonkeys" ("ancestry")
3828
+  (0.0ms) SELECT * FROM "monkeys"
3829
+  (0.1ms) DROP TABLE "monkeys"
3830
+  (0.2ms) CREATE TABLE "monkeys" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "ancestry" varchar, "old_parent_id" integer)
3831
+  (0.1ms)  SELECT sql
3832
+ FROM sqlite_master
3833
+ WHERE name='tindex_amonkeys_on_ancestry' AND type='index'
3834
+ UNION ALL
3835
+ SELECT sql
3836
+ FROM sqlite_temp_master
3837
+ WHERE name='tindex_amonkeys_on_ancestry' AND type='index'
3838
+ 
3839
+  (0.2ms) CREATE INDEX "index_monkeys_on_ancestry" ON "monkeys" ("ancestry")
3840
+  (0.1ms) SELECT * FROM "amonkeys"
3841
+  (0.1ms) DROP TABLE "amonkeys"
3842
+  (0.1ms) CREATE TEMPORARY TABLE "amonkeys" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "ancestry" varchar, "old_parent_id" integer) 
3843
+  (0.1ms) SELECT sql
3844
+ FROM sqlite_master
3845
+ WHERE name='index_monkeys_on_ancestry' AND type='index'
3846
+ UNION ALL
3847
+ SELECT sql
3848
+ FROM sqlite_temp_master
3849
+ WHERE name='index_monkeys_on_ancestry' AND type='index'
3850
+
3851
+  (0.3ms) CREATE INDEX "tindex_amonkeys_on_ancestry" ON "amonkeys" ("ancestry")
3852
+  (0.1ms) SELECT * FROM "monkeys"
3853
+  (0.1ms) DROP TABLE "monkeys"
3854
+  (0.1ms) CREATE TABLE "monkeys" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "ancestry" varchar)
3855
+  (0.1ms)  SELECT sql
3856
+ FROM sqlite_master
3857
+ WHERE name='tindex_amonkeys_on_ancestry' AND type='index'
3858
+ UNION ALL
3859
+ SELECT sql
3860
+ FROM sqlite_temp_master
3861
+ WHERE name='tindex_amonkeys_on_ancestry' AND type='index'
3862
+ 
3863
+  (0.1ms) CREATE INDEX "index_monkeys_on_ancestry" ON "monkeys" ("ancestry")
3864
+  (0.1ms) SELECT * FROM "amonkeys"
3865
+  (0.1ms) DROP TABLE "amonkeys"
3866
+ SQL (0.1ms) DELETE FROM "schema_migrations" WHERE "schema_migrations"."version" = ? [["version", "20161217174321"]]
3867
+  (69.9ms) commit transaction
3868
+ Migrating to AddAncestryToMonkeys (20161217174027)
3869
+  (0.1ms) begin transaction
3870
+  (0.2ms) SELECT sql
3871
+ FROM sqlite_master
3872
+ WHERE name='index_monkeys_on_ancestry' AND type='index'
3873
+ UNION ALL
3874
+ SELECT sql
3875
+ FROM sqlite_temp_master
3876
+ WHERE name='index_monkeys_on_ancestry' AND type='index'
3877
+
3878
+  (0.2ms) DROP INDEX "index_monkeys_on_ancestry"
3879
+  (0.1ms) CREATE TEMPORARY TABLE "amonkeys" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "ancestry" varchar)
3880
+  (0.1ms) SELECT * FROM "monkeys"
3881
+  (0.2ms) DROP TABLE "monkeys"
3882
+  (0.2ms) CREATE TABLE "monkeys" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL) 
3883
+  (0.0ms) SELECT * FROM "amonkeys"
3884
+  (0.1ms) DROP TABLE "amonkeys"
3885
+ SQL (0.1ms) DELETE FROM "schema_migrations" WHERE "schema_migrations"."version" = ? [["version", "20161217174027"]]
3886
+  (61.7ms) commit transaction
3887
+ Migrating to AddHideBonoboToBonobos (20161217172456)
3888
+  (0.1ms) begin transaction
3889
+  (0.6ms) CREATE TEMPORARY TABLE "abonobos" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "ancestry" varchar, "hide_bonobo" boolean DEFAULT 'f') 
3890
+  (0.1ms) SELECT sql
3891
+ FROM sqlite_master
3892
+ WHERE name='index_bonobos_on_ancestry' AND type='index'
3893
+ UNION ALL
3894
+ SELECT sql
3895
+ FROM sqlite_temp_master
3896
+ WHERE name='index_bonobos_on_ancestry' AND type='index'
3897
+
3898
+  (0.1ms) CREATE INDEX "tindex_abonobos_on_ancestry" ON "abonobos" ("ancestry")
3899
+  (0.1ms) SELECT * FROM "bonobos"
3900
+  (0.2ms) DROP TABLE "bonobos"
3901
+  (0.1ms) CREATE TABLE "bonobos" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "ancestry" varchar)
3902
+  (0.1ms)  SELECT sql
3903
+ FROM sqlite_master
3904
+ WHERE name='tindex_abonobos_on_ancestry' AND type='index'
3905
+ UNION ALL
3906
+ SELECT sql
3907
+ FROM sqlite_temp_master
3908
+ WHERE name='tindex_abonobos_on_ancestry' AND type='index'
3909
+ 
3910
+  (0.1ms) CREATE INDEX "index_bonobos_on_ancestry" ON "bonobos" ("ancestry")
3911
+  (0.1ms) SELECT * FROM "abonobos"
3912
+  (0.1ms) DROP TABLE "abonobos"
3913
+ SQL (0.1ms) DELETE FROM "schema_migrations" WHERE "schema_migrations"."version" = ? [["version", "20161217172456"]]
3914
+  (81.8ms) commit transaction
3915
+ Migrating to AddAncestryToBonobo (20161217154748)
3916
+  (0.1ms) begin transaction
3917
+  (0.1ms) SELECT sql
3918
+ FROM sqlite_master
3919
+ WHERE name='index_bonobos_on_ancestry' AND type='index'
3920
+ UNION ALL
3921
+ SELECT sql
3922
+ FROM sqlite_temp_master
3923
+ WHERE name='index_bonobos_on_ancestry' AND type='index'
3924
+
3925
+  (0.1ms) DROP INDEX "index_bonobos_on_ancestry"
3926
+  (0.1ms) CREATE TEMPORARY TABLE "abonobos" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "ancestry" varchar)
3927
+  (0.1ms) SELECT * FROM "bonobos"
3928
+  (0.2ms) DROP TABLE "bonobos"
3929
+  (0.1ms) CREATE TABLE "bonobos" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL) 
3930
+  (0.0ms) SELECT * FROM "abonobos"
3931
+  (0.1ms) DROP TABLE "abonobos"
3932
+ SQL (0.1ms) DELETE FROM "schema_migrations" WHERE "schema_migrations"."version" = ? [["version", "20161217154748"]]
3933
+  (51.0ms) commit transaction
3934
+ Migrating to CreateBonobos (20161217154522)
3935
+  (0.1ms) begin transaction
3936
+  (0.2ms) DROP TABLE "bonobos"
3937
+ SQL (0.1ms) DELETE FROM "schema_migrations" WHERE "schema_migrations"."version" = ? [["version", "20161217154522"]]
3938
+  (75.6ms) commit transaction
3939
+ Migrating to CreateMonkeys (20161216194357)
3940
+  (0.1ms) begin transaction
3941
+  (0.2ms) DROP TABLE "monkeys"
3942
+ SQL (0.1ms) DELETE FROM "schema_migrations" WHERE "schema_migrations"."version" = ? [["version", "20161216194357"]]
3943
+  (53.5ms) commit transaction
3944
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
3945
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
3946
+ Migrating to CreateMonkeys (20161216194357)
3947
+  (0.1ms) begin transaction
3948
+  (0.3ms) CREATE TABLE "monkeys" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL) 
3949
+ SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20161216194357"]]
3950
+  (49.8ms) commit transaction
3951
+ Migrating to CreateBonobos (20161217154522)
3952
+  (0.1ms) begin transaction
3953
+  (0.3ms) CREATE TABLE "bonobos" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL) 
3954
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20161217154522"]]
3955
+  (52.5ms) commit transaction
3956
+ Migrating to AddAncestryToBonobo (20161217154748)
3957
+  (0.1ms) begin transaction
3958
+  (0.4ms) ALTER TABLE "bonobos" ADD "ancestry" varchar
3959
+  (0.1ms) select sqlite_version(*)
3960
+  (0.2ms) CREATE INDEX "index_bonobos_on_ancestry" ON "bonobos" ("ancestry")
3961
+ SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20161217154748"]]
3962
+  (51.2ms) commit transaction
3963
+ Migrating to AddHideBonoboToBonobos (20161217172456)
3964
+  (0.1ms) begin transaction
3965
+  (0.4ms) ALTER TABLE "bonobos" ADD "hide_bonobo" boolean DEFAULT 'f'
3966
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20161217172456"]]
3967
+  (52.3ms) commit transaction
3968
+ Migrating to AddAncestryToMonkeys (20161217174027)
3969
+  (0.1ms) begin transaction
3970
+  (0.3ms) ALTER TABLE "monkeys" ADD "ancestry" varchar
3971
+  (0.1ms) CREATE INDEX "index_monkeys_on_ancestry" ON "monkeys" ("ancestry")
3972
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20161217174027"]]
3973
+  (52.7ms) commit transaction
3974
+ Migrating to AddHideAncestryColsToMonkeys (20161217174321)
3975
+  (0.1ms) begin transaction
3976
+  (0.4ms) ALTER TABLE "monkeys" ADD "old_parent_id" integer
3977
+  (0.2ms) ALTER TABLE "monkeys" ADD "old_child_ids" text
3978
+  (0.1ms) ALTER TABLE "monkeys" ADD "hide_ancestry" varchar
3979
+  (0.1ms) ALTER TABLE "monkeys" ADD "hidden_status" boolean DEFAULT 'f'
3980
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20161217174321"]]
3981
+  (74.1ms) commit transaction
3982
+ Migrating to AddHideAncestryColsToBonobos (20161217174356)
3983
+  (0.1ms) begin transaction
3984
+  (0.4ms) ALTER TABLE "bonobos" ADD "old_parent_id" integer
3985
+  (0.2ms) ALTER TABLE "bonobos" ADD "old_child_ids" text
3986
+  (0.1ms) ALTER TABLE "bonobos" ADD "hide_ancestry" varchar
3987
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20161217174356"]]
3988
+  (52.5ms) commit transaction
3989
+ Migrating to AddNameToMonkeys (20161218161330)
3990
+  (0.1ms) begin transaction
3991
+  (0.3ms) ALTER TABLE "monkeys" ADD "name" varchar
3992
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20161218161330"]]
3993
+  (75.3ms) commit transaction
3994
+ Migrating to CreateChimpanzee (20161219150540)
3995
+  (0.1ms) begin transaction
3996
+  (0.3ms) CREATE TABLE "chimpanzees" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL) 
3997
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20161219150540"]]
3998
+  (53.1ms) commit transaction
3999
+ Migrating to AddAncestryToChimpanzees (20161219150554)
4000
+  (0.1ms) begin transaction
4001
+  (0.2ms) ALTER TABLE "chimpanzees" ADD "ancestry" varchar
4002
+  (0.1ms) CREATE INDEX "index_chimpanzees_on_ancestry" ON "chimpanzees" ("ancestry")
4003
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20161219150554"]]
4004
+  (74.9ms) commit transaction
4005
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
4006
+  (0.1ms) SELECT sql
4007
+ FROM sqlite_master
4008
+ WHERE name='index_bonobos_on_ancestry' AND type='index'
4009
+ UNION ALL
4010
+ SELECT sql
4011
+ FROM sqlite_temp_master
4012
+ WHERE name='index_bonobos_on_ancestry' AND type='index'
4013
+
4014
+  (0.1ms)  SELECT sql
4015
+ FROM sqlite_master
4016
+ WHERE name='index_chimpanzees_on_ancestry' AND type='index'
4017
+ UNION ALL
4018
+ SELECT sql
4019
+ FROM sqlite_temp_master
4020
+ WHERE name='index_chimpanzees_on_ancestry' AND type='index'
4021
+ 
4022
+  (0.1ms) SELECT sql
4023
+ FROM sqlite_master
4024
+ WHERE name='index_monkeys_on_ancestry' AND type='index'
4025
+ UNION ALL
4026
+ SELECT sql
4027
+ FROM sqlite_temp_master
4028
+ WHERE name='index_monkeys_on_ancestry' AND type='index'
4029
+
4030
+  (76.0ms) CREATE TABLE "bonobos" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "ancestry" varchar, "hide_bonobo" boolean DEFAULT 'f', "old_parent_id" integer, "old_child_ids" text, "hide_ancestry" varchar) 
4031
+  (0.1ms) select sqlite_version(*)
4032
+  (112.4ms) CREATE INDEX "index_bonobos_on_ancestry" ON "bonobos" ("ancestry")
4033
+  (121.7ms) CREATE TABLE "chimpanzees" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "ancestry" varchar)
4034
+  (77.4ms) CREATE INDEX "index_chimpanzees_on_ancestry" ON "chimpanzees" ("ancestry")
4035
+  (88.3ms) CREATE TABLE "monkeys" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL, "ancestry" varchar, "old_parent_id" integer, "old_child_ids" text, "hide_ancestry" varchar, "hidden_status" boolean DEFAULT 'f', "name" varchar)
4036
+  (88.4ms) CREATE INDEX "index_monkeys_on_ancestry" ON "monkeys" ("ancestry")
4037
+  (107.6ms) CREATE TABLE "schema_migrations" ("version" varchar NOT NULL)
4038
+  (88.5ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
4039
+  (0.1ms) SELECT version FROM "schema_migrations"
4040
+  (67.6ms) INSERT INTO "schema_migrations" (version) VALUES ('20161219150554')
4041
+  (66.2ms) INSERT INTO "schema_migrations" (version) VALUES ('20161217172456')
4042
+  (66.4ms) INSERT INTO "schema_migrations" (version) VALUES ('20161217174321')
4043
+  (65.9ms) INSERT INTO "schema_migrations" (version) VALUES ('20161217154522')
4044
+  (88.4ms) INSERT INTO "schema_migrations" (version) VALUES ('20161218161330')
4045
+  (66.2ms) INSERT INTO "schema_migrations" (version) VALUES ('20161217154748')
4046
+  (88.4ms) INSERT INTO "schema_migrations" (version) VALUES ('20161217174356')
4047
+  (66.1ms) INSERT INTO "schema_migrations" (version) VALUES ('20161219150540')
4048
+  (88.4ms) INSERT INTO "schema_migrations" (version) VALUES ('20161216194357')
4049
+  (66.3ms) INSERT INTO "schema_migrations" (version) VALUES ('20161217174027')