hide_ancestry 0.0.2 → 0.0.3

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.
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')