paper_trail 4.2.0 → 5.0.0
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 +4 -4
 - data/{CONTRIBUTING.md → .github/CONTRIBUTING.md} +28 -9
 - data/.github/ISSUE_TEMPLATE.md +13 -0
 - data/.gitignore +2 -1
 - data/.rubocop.yml +100 -0
 - data/.rubocop_todo.yml +14 -0
 - data/.travis.yml +8 -9
 - data/Appraisals +41 -0
 - data/CHANGELOG.md +49 -9
 - data/Gemfile +1 -1
 - data/README.md +130 -109
 - data/Rakefile +19 -19
 - data/doc/bug_report_template.rb +20 -14
 - data/gemfiles/ar3.gemfile +10 -53
 - data/gemfiles/ar4.gemfile +7 -0
 - data/gemfiles/ar5.gemfile +13 -0
 - data/lib/generators/paper_trail/install_generator.rb +26 -18
 - data/lib/generators/paper_trail/templates/add_object_changes_to_versions.rb +4 -2
 - data/lib/generators/paper_trail/templates/add_transaction_id_column_to_versions.rb +2 -0
 - data/lib/generators/paper_trail/templates/create_version_associations.rb +9 -4
 - data/lib/generators/paper_trail/templates/create_versions.rb +39 -5
 - data/lib/paper_trail.rb +169 -146
 - data/lib/paper_trail/attributes_serialization.rb +89 -17
 - data/lib/paper_trail/cleaner.rb +15 -9
 - data/lib/paper_trail/config.rb +28 -11
 - data/lib/paper_trail/frameworks/active_record.rb +4 -0
 - data/lib/paper_trail/frameworks/active_record/models/paper_trail/version.rb +5 -1
 - data/lib/paper_trail/frameworks/active_record/models/paper_trail/version_association.rb +6 -2
 - data/lib/paper_trail/frameworks/cucumber.rb +1 -0
 - data/lib/paper_trail/frameworks/rails.rb +2 -7
 - data/lib/paper_trail/frameworks/rails/controller.rb +29 -9
 - data/lib/paper_trail/frameworks/rails/engine.rb +7 -1
 - data/lib/paper_trail/frameworks/rspec.rb +5 -5
 - data/lib/paper_trail/frameworks/rspec/helpers.rb +3 -1
 - data/lib/paper_trail/frameworks/sinatra.rb +6 -4
 - data/lib/paper_trail/has_paper_trail.rb +199 -106
 - data/lib/paper_trail/record_history.rb +1 -3
 - data/lib/paper_trail/reifier.rb +297 -118
 - data/lib/paper_trail/serializers/json.rb +3 -3
 - data/lib/paper_trail/serializers/yaml.rb +27 -8
 - data/lib/paper_trail/version_association_concern.rb +3 -1
 - data/lib/paper_trail/version_concern.rb +75 -35
 - data/lib/paper_trail/version_number.rb +6 -9
 - data/paper_trail.gemspec +44 -51
 - data/spec/generators/install_generator_spec.rb +24 -25
 - data/spec/generators/paper_trail/templates/create_versions_spec.rb +51 -0
 - data/spec/models/animal_spec.rb +12 -12
 - data/spec/models/boolit_spec.rb +8 -8
 - data/spec/models/callback_modifier_spec.rb +47 -47
 - data/spec/models/car_spec.rb +13 -0
 - data/spec/models/fluxor_spec.rb +3 -3
 - data/spec/models/gadget_spec.rb +19 -19
 - data/spec/models/joined_version_spec.rb +3 -3
 - data/spec/models/json_version_spec.rb +23 -24
 - data/spec/models/kitchen/banana_spec.rb +3 -3
 - data/spec/models/not_on_update_spec.rb +7 -4
 - data/spec/models/post_with_status_spec.rb +13 -3
 - data/spec/models/skipper_spec.rb +10 -10
 - data/spec/models/thing_spec.rb +4 -4
 - data/spec/models/truck_spec.rb +5 -0
 - data/spec/models/vehicle_spec.rb +5 -0
 - data/spec/models/version_spec.rb +103 -59
 - data/spec/models/widget_spec.rb +82 -52
 - data/spec/modules/paper_trail_spec.rb +2 -2
 - data/spec/modules/version_concern_spec.rb +11 -12
 - data/spec/modules/version_number_spec.rb +2 -4
 - data/spec/paper_trail/config_spec.rb +10 -29
 - data/spec/paper_trail_spec.rb +16 -14
 - data/spec/rails_helper.rb +10 -9
 - data/spec/requests/articles_spec.rb +11 -7
 - data/spec/spec_helper.rb +41 -22
 - data/spec/support/alt_db_init.rb +8 -13
 - data/test/custom_json_serializer.rb +3 -3
 - data/test/dummy/Rakefile +2 -2
 - data/test/dummy/app/controllers/application_controller.rb +21 -8
 - data/test/dummy/app/controllers/articles_controller.rb +11 -8
 - data/test/dummy/app/controllers/widgets_controller.rb +13 -12
 - data/test/dummy/app/models/animal.rb +1 -1
 - data/test/dummy/app/models/article.rb +19 -11
 - data/test/dummy/app/models/authorship.rb +1 -1
 - data/test/dummy/app/models/bar_habtm.rb +4 -0
 - data/test/dummy/app/models/book.rb +4 -4
 - data/test/dummy/app/models/boolit.rb +1 -1
 - data/test/dummy/app/models/callback_modifier.rb +6 -6
 - data/test/dummy/app/models/car.rb +3 -0
 - data/test/dummy/app/models/chapter.rb +4 -4
 - data/test/dummy/app/models/customer.rb +1 -1
 - data/test/dummy/app/models/document.rb +2 -2
 - data/test/dummy/app/models/editor.rb +1 -1
 - data/test/dummy/app/models/foo_habtm.rb +4 -0
 - data/test/dummy/app/models/fruit.rb +2 -2
 - data/test/dummy/app/models/gadget.rb +1 -1
 - data/test/dummy/app/models/kitchen/banana.rb +1 -1
 - data/test/dummy/app/models/legacy_widget.rb +2 -2
 - data/test/dummy/app/models/line_item.rb +1 -1
 - data/test/dummy/app/models/not_on_update.rb +1 -1
 - data/test/dummy/app/models/person.rb +6 -6
 - data/test/dummy/app/models/post.rb +1 -1
 - data/test/dummy/app/models/post_with_status.rb +1 -1
 - data/test/dummy/app/models/quotation.rb +1 -1
 - data/test/dummy/app/models/section.rb +1 -1
 - data/test/dummy/app/models/skipper.rb +2 -2
 - data/test/dummy/app/models/song.rb +13 -4
 - data/test/dummy/app/models/thing.rb +2 -2
 - data/test/dummy/app/models/translation.rb +2 -2
 - data/test/dummy/app/models/truck.rb +4 -0
 - data/test/dummy/app/models/vehicle.rb +4 -0
 - data/test/dummy/app/models/whatchamajigger.rb +1 -1
 - data/test/dummy/app/models/widget.rb +7 -6
 - data/test/dummy/app/versions/joined_version.rb +4 -3
 - data/test/dummy/app/versions/json_version.rb +1 -1
 - data/test/dummy/app/versions/kitchen/banana_version.rb +1 -1
 - data/test/dummy/app/versions/post_version.rb +2 -2
 - data/test/dummy/config.ru +1 -1
 - data/test/dummy/config/application.rb +20 -9
 - data/test/dummy/config/boot.rb +5 -5
 - data/test/dummy/config/environment.rb +1 -1
 - data/test/dummy/config/environments/development.rb +4 -3
 - data/test/dummy/config/environments/production.rb +3 -2
 - data/test/dummy/config/environments/test.rb +15 -5
 - data/test/dummy/config/initializers/backtrace_silencers.rb +4 -2
 - data/test/dummy/config/initializers/paper_trail.rb +1 -2
 - data/test/dummy/config/initializers/secret_token.rb +3 -1
 - data/test/dummy/config/initializers/session_store.rb +1 -1
 - data/test/dummy/config/routes.rb +2 -2
 - data/test/dummy/db/migrate/20110208155312_set_up_test_tables.rb +120 -74
 - data/test/dummy/db/schema.rb +29 -6
 - data/test/dummy/script/rails +6 -4
 - data/test/functional/controller_test.rb +34 -35
 - data/test/functional/enabled_for_controller_test.rb +6 -7
 - data/test/functional/modular_sinatra_test.rb +43 -38
 - data/test/functional/sinatra_test.rb +49 -40
 - data/test/functional/thread_safety_test.rb +4 -6
 - data/test/paper_trail_test.rb +15 -14
 - data/test/test_helper.rb +68 -44
 - data/test/time_travel_helper.rb +1 -15
 - data/test/unit/associations_test.rb +517 -251
 - data/test/unit/cleaner_test.rb +66 -60
 - data/test/unit/inheritance_column_test.rb +17 -17
 - data/test/unit/model_test.rb +611 -504
 - data/test/unit/protected_attrs_test.rb +16 -12
 - data/test/unit/serializer_test.rb +44 -43
 - data/test/unit/serializers/json_test.rb +17 -18
 - data/test/unit/serializers/mixin_json_test.rb +15 -14
 - data/test/unit/serializers/mixin_yaml_test.rb +20 -16
 - data/test/unit/serializers/yaml_test.rb +12 -13
 - data/test/unit/timestamp_test.rb +10 -12
 - data/test/unit/version_test.rb +7 -7
 - metadata +92 -40
 
| 
         @@ -1,7 +1,9 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # Be sure to restart your server when you modify this file.
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            # You can add backtrace silencers for libraries that you're using but don't wish 
     | 
| 
      
 3 
     | 
    
         
            +
            # You can add backtrace silencers for libraries that you're using but don't wish
         
     | 
| 
      
 4 
     | 
    
         
            +
            # to see in your backtraces.
         
     | 
| 
       4 
5 
     | 
    
         
             
            # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
         
     | 
| 
       5 
6 
     | 
    
         | 
| 
       6 
     | 
    
         
            -
            # You can also remove all the silencers if you're trying to debug a problem that 
     | 
| 
      
 7 
     | 
    
         
            +
            # You can also remove all the silencers if you're trying to debug a problem that
         
     | 
| 
      
 8 
     | 
    
         
            +
            # might stem from framework code.
         
     | 
| 
       7 
9 
     | 
    
         
             
            # Rails.backtrace_cleaner.remove_silencers!
         
     | 
| 
         @@ -4,4 +4,6 @@ 
     | 
|
| 
       4 
4 
     | 
    
         
             
            # If you change this key, all old signed cookies will become invalid!
         
     | 
| 
       5 
5 
     | 
    
         
             
            # Make sure the secret is at least 30 characters and all random,
         
     | 
| 
       6 
6 
     | 
    
         
             
            # no regular words or you'll be exposed to dictionary attacks.
         
     | 
| 
       7 
     | 
    
         
            -
            Dummy::Application.config.secret_token =  
     | 
| 
      
 7 
     | 
    
         
            +
            Dummy::Application.config.secret_token = "99c0312cf416079a8c7ccc63acb1e9f4f" +
         
     | 
| 
      
 8 
     | 
    
         
            +
              "17741398ec8022a2f4fb509c57f55b72486573e9816a026f507efbcd452a9e954d45c93c" +
         
     | 
| 
      
 9 
     | 
    
         
            +
              "95d5bacd87e664ad6805d3f"
         
     | 
| 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # Be sure to restart your server when you modify this file.
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            Dummy::Application.config.session_store :cookie_store, : 
     | 
| 
      
 3 
     | 
    
         
            +
            Dummy::Application.config.session_store :cookie_store, key: "_dummy_session"
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
            # Use the database for sessions instead of the cookie-based default,
         
     | 
| 
       6 
6 
     | 
    
         
             
            # which shouldn't be used to store highly confidential information
         
     | 
    
        data/test/dummy/config/routes.rb
    CHANGED
    
    
| 
         @@ -1,33 +1,49 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Keep this migration in sync with
         
     | 
| 
      
 2 
     | 
    
         
            +
            # `lib/generators/paper_trail/templates/create_versions.rb`
         
     | 
| 
      
 3 
     | 
    
         
            +
            # TODO: Is there a way to avoid duplication?
         
     | 
| 
       1 
4 
     | 
    
         
             
            class SetUpTestTables < ActiveRecord::Migration
         
     | 
| 
       2 
     | 
    
         
            -
               
     | 
| 
       3 
     | 
    
         
            -
                 
     | 
| 
      
 5 
     | 
    
         
            +
              MYSQL_ADAPTERS = [
         
     | 
| 
      
 6 
     | 
    
         
            +
                "ActiveRecord::ConnectionAdapters::MysqlAdapter",
         
     | 
| 
      
 7 
     | 
    
         
            +
                "ActiveRecord::ConnectionAdapters::Mysql2Adapter"
         
     | 
| 
      
 8 
     | 
    
         
            +
              ].freeze
         
     | 
| 
      
 9 
     | 
    
         
            +
              TEXT_BYTES = 1_073_741_823
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
              def up
         
     | 
| 
      
 12 
     | 
    
         
            +
                # Classes: Vehicle, Car, Truck
         
     | 
| 
      
 13 
     | 
    
         
            +
                create_table :vehicles, force: true do |t|
         
     | 
| 
      
 14 
     | 
    
         
            +
                  t.string :name, null: false
         
     | 
| 
      
 15 
     | 
    
         
            +
                  t.string :type, null: false
         
     | 
| 
      
 16 
     | 
    
         
            +
                  t.timestamps null: false
         
     | 
| 
      
 17 
     | 
    
         
            +
                end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                create_table :skippers, force: true do |t|
         
     | 
| 
       4 
20 
     | 
    
         
             
                  t.string     :name
         
     | 
| 
       5 
21 
     | 
    
         
             
                  t.datetime   :another_timestamp
         
     | 
| 
       6 
     | 
    
         
            -
                  t.timestamps : 
     | 
| 
      
 22 
     | 
    
         
            +
                  t.timestamps null: true
         
     | 
| 
       7 
23 
     | 
    
         
             
                end
         
     | 
| 
       8 
24 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
                create_table :widgets, : 
     | 
| 
      
 25 
     | 
    
         
            +
                create_table :widgets, force: true do |t|
         
     | 
| 
       10 
26 
     | 
    
         
             
                  t.string    :name
         
     | 
| 
       11 
27 
     | 
    
         
             
                  t.text      :a_text
         
     | 
| 
       12 
28 
     | 
    
         
             
                  t.integer   :an_integer
         
     | 
| 
       13 
29 
     | 
    
         
             
                  t.float     :a_float
         
     | 
| 
       14 
     | 
    
         
            -
                  t.decimal   :a_decimal, : 
     | 
| 
      
 30 
     | 
    
         
            +
                  t.decimal   :a_decimal, precision: 6, scale: 4
         
     | 
| 
       15 
31 
     | 
    
         
             
                  t.datetime  :a_datetime
         
     | 
| 
       16 
32 
     | 
    
         
             
                  t.time      :a_time
         
     | 
| 
       17 
33 
     | 
    
         
             
                  t.date      :a_date
         
     | 
| 
       18 
34 
     | 
    
         
             
                  t.boolean   :a_boolean
         
     | 
| 
       19 
35 
     | 
    
         
             
                  t.string    :sacrificial_column
         
     | 
| 
       20 
36 
     | 
    
         
             
                  t.string    :type
         
     | 
| 
       21 
     | 
    
         
            -
                  t.timestamps : 
     | 
| 
      
 37 
     | 
    
         
            +
                  t.timestamps null: true
         
     | 
| 
       22 
38 
     | 
    
         
             
                end
         
     | 
| 
       23 
39 
     | 
    
         | 
| 
       24 
     | 
    
         
            -
                create_table :versions,  
     | 
| 
       25 
     | 
    
         
            -
                  t.string   :item_type, : 
     | 
| 
       26 
     | 
    
         
            -
                  t.integer  :item_id,   : 
     | 
| 
       27 
     | 
    
         
            -
                  t.string   :event,     : 
     | 
| 
      
 40 
     | 
    
         
            +
                create_table :versions, versions_table_options do |t|
         
     | 
| 
      
 41 
     | 
    
         
            +
                  t.string   :item_type, null: false
         
     | 
| 
      
 42 
     | 
    
         
            +
                  t.integer  :item_id,   null: false
         
     | 
| 
      
 43 
     | 
    
         
            +
                  t.string   :event,     null: false
         
     | 
| 
       28 
44 
     | 
    
         
             
                  t.string   :whodunnit
         
     | 
| 
       29 
     | 
    
         
            -
                  t.text     :object
         
     | 
| 
       30 
     | 
    
         
            -
                  t.text     :object_changes
         
     | 
| 
      
 45 
     | 
    
         
            +
                  t.text     :object, limit: TEXT_BYTES
         
     | 
| 
      
 46 
     | 
    
         
            +
                  t.text     :object_changes, limit: TEXT_BYTES
         
     | 
| 
       31 
47 
     | 
    
         
             
                  t.integer  :transaction_id
         
     | 
| 
       32 
48 
     | 
    
         
             
                  t.datetime :created_at
         
     | 
| 
       33 
49 
     | 
    
         | 
| 
         @@ -46,16 +62,18 @@ class SetUpTestTables < ActiveRecord::Migration 
     | 
|
| 
       46 
62 
     | 
    
         | 
| 
       47 
63 
     | 
    
         
             
                create_table :version_associations do |t|
         
     | 
| 
       48 
64 
     | 
    
         
             
                  t.integer  :version_id
         
     | 
| 
       49 
     | 
    
         
            -
                  t.string   :foreign_key_name, : 
     | 
| 
      
 65 
     | 
    
         
            +
                  t.string   :foreign_key_name, null: false
         
     | 
| 
       50 
66 
     | 
    
         
             
                  t.integer  :foreign_key_id
         
     | 
| 
       51 
67 
     | 
    
         
             
                end
         
     | 
| 
       52 
68 
     | 
    
         
             
                add_index :version_associations, [:version_id]
         
     | 
| 
       53 
     | 
    
         
            -
                add_index :version_associations, 
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
     | 
    
         
            -
             
     | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
       57 
     | 
    
         
            -
             
     | 
| 
       58 
     | 
    
         
            -
                  t.string   : 
     | 
| 
      
 69 
     | 
    
         
            +
                add_index :version_associations,
         
     | 
| 
      
 70 
     | 
    
         
            +
                  [:foreign_key_name, :foreign_key_id],
         
     | 
| 
      
 71 
     | 
    
         
            +
                  name: "index_version_associations_on_foreign_key"
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
                create_table :post_versions, force: true do |t|
         
     | 
| 
      
 74 
     | 
    
         
            +
                  t.string   :item_type, null: false
         
     | 
| 
      
 75 
     | 
    
         
            +
                  t.integer  :item_id,   null: false
         
     | 
| 
      
 76 
     | 
    
         
            +
                  t.string   :event,     null: false
         
     | 
| 
       59 
77 
     | 
    
         
             
                  t.string   :whodunnit
         
     | 
| 
       60 
78 
     | 
    
         
             
                  t.text     :object
         
     | 
| 
       61 
79 
     | 
    
         
             
                  t.datetime :created_at
         
     | 
| 
         @@ -66,11 +84,11 @@ class SetUpTestTables < ActiveRecord::Migration 
     | 
|
| 
       66 
84 
     | 
    
         
             
                end
         
     | 
| 
       67 
85 
     | 
    
         
             
                add_index :post_versions, [:item_type, :item_id]
         
     | 
| 
       68 
86 
     | 
    
         | 
| 
       69 
     | 
    
         
            -
                if ENV[ 
     | 
| 
       70 
     | 
    
         
            -
                  create_table :json_versions, : 
     | 
| 
       71 
     | 
    
         
            -
                    t.string   :item_type, : 
     | 
| 
       72 
     | 
    
         
            -
                    t.integer  :item_id,   : 
     | 
| 
       73 
     | 
    
         
            -
                    t.string   :event,     : 
     | 
| 
      
 87 
     | 
    
         
            +
                if ENV["DB"] == "postgres" && ::ActiveRecord::VERSION::MAJOR >= 4
         
     | 
| 
      
 88 
     | 
    
         
            +
                  create_table :json_versions, force: true do |t|
         
     | 
| 
      
 89 
     | 
    
         
            +
                    t.string   :item_type, null: false
         
     | 
| 
      
 90 
     | 
    
         
            +
                    t.integer  :item_id,   null: false
         
     | 
| 
      
 91 
     | 
    
         
            +
                    t.string   :event,     null: false
         
     | 
| 
       74 
92 
     | 
    
         
             
                    t.string   :whodunnit
         
     | 
| 
       75 
93 
     | 
    
         
             
                    t.json     :object
         
     | 
| 
       76 
94 
     | 
    
         
             
                    t.json     :object_changes
         
     | 
| 
         @@ -79,168 +97,186 @@ class SetUpTestTables < ActiveRecord::Migration 
     | 
|
| 
       79 
97 
     | 
    
         
             
                  add_index :json_versions, [:item_type, :item_id]
         
     | 
| 
       80 
98 
     | 
    
         
             
                end
         
     | 
| 
       81 
99 
     | 
    
         | 
| 
       82 
     | 
    
         
            -
                create_table :not_on_updates, : 
     | 
| 
       83 
     | 
    
         
            -
                  t.timestamps : 
     | 
| 
      
 100 
     | 
    
         
            +
                create_table :not_on_updates, force: true do |t|
         
     | 
| 
      
 101 
     | 
    
         
            +
                  t.timestamps null: true
         
     | 
| 
       84 
102 
     | 
    
         
             
                end
         
     | 
| 
       85 
103 
     | 
    
         | 
| 
       86 
     | 
    
         
            -
                create_table :bananas, : 
     | 
| 
       87 
     | 
    
         
            -
                  t.timestamps : 
     | 
| 
      
 104 
     | 
    
         
            +
                create_table :bananas, force: true do |t|
         
     | 
| 
      
 105 
     | 
    
         
            +
                  t.timestamps null: true
         
     | 
| 
       88 
106 
     | 
    
         
             
                end
         
     | 
| 
       89 
107 
     | 
    
         | 
| 
       90 
     | 
    
         
            -
                create_table :banana_versions, : 
     | 
| 
       91 
     | 
    
         
            -
                  t.string   :item_type, : 
     | 
| 
       92 
     | 
    
         
            -
                  t.integer  :item_id,   : 
     | 
| 
       93 
     | 
    
         
            -
                  t.string   :event,     : 
     | 
| 
      
 108 
     | 
    
         
            +
                create_table :banana_versions, force: true do |t|
         
     | 
| 
      
 109 
     | 
    
         
            +
                  t.string   :item_type, null: false
         
     | 
| 
      
 110 
     | 
    
         
            +
                  t.integer  :item_id,   null: false
         
     | 
| 
      
 111 
     | 
    
         
            +
                  t.string   :event,     null: false
         
     | 
| 
       94 
112 
     | 
    
         
             
                  t.string   :whodunnit
         
     | 
| 
       95 
113 
     | 
    
         
             
                  t.text     :object
         
     | 
| 
       96 
114 
     | 
    
         
             
                  t.datetime :created_at
         
     | 
| 
       97 
115 
     | 
    
         
             
                end
         
     | 
| 
       98 
116 
     | 
    
         
             
                add_index :banana_versions, [:item_type, :item_id]
         
     | 
| 
       99 
117 
     | 
    
         | 
| 
       100 
     | 
    
         
            -
                create_table :wotsits, : 
     | 
| 
      
 118 
     | 
    
         
            +
                create_table :wotsits, force: true do |t|
         
     | 
| 
       101 
119 
     | 
    
         
             
                  t.integer :widget_id
         
     | 
| 
       102 
120 
     | 
    
         
             
                  t.string  :name
         
     | 
| 
       103 
     | 
    
         
            -
                  t.timestamps : 
     | 
| 
      
 121 
     | 
    
         
            +
                  t.timestamps null: true
         
     | 
| 
       104 
122 
     | 
    
         
             
                end
         
     | 
| 
       105 
123 
     | 
    
         | 
| 
       106 
     | 
    
         
            -
                create_table :fluxors, : 
     | 
| 
      
 124 
     | 
    
         
            +
                create_table :fluxors, force: true do |t|
         
     | 
| 
       107 
125 
     | 
    
         
             
                  t.integer :widget_id
         
     | 
| 
       108 
126 
     | 
    
         
             
                  t.string  :name
         
     | 
| 
       109 
127 
     | 
    
         
             
                end
         
     | 
| 
       110 
128 
     | 
    
         | 
| 
       111 
     | 
    
         
            -
                create_table :whatchamajiggers, : 
     | 
| 
      
 129 
     | 
    
         
            +
                create_table :whatchamajiggers, force: true do |t|
         
     | 
| 
       112 
130 
     | 
    
         
             
                  t.string  :owner_type
         
     | 
| 
       113 
131 
     | 
    
         
             
                  t.integer :owner_id
         
     | 
| 
       114 
132 
     | 
    
         
             
                  t.string  :name
         
     | 
| 
       115 
133 
     | 
    
         
             
                end
         
     | 
| 
       116 
134 
     | 
    
         | 
| 
       117 
     | 
    
         
            -
                create_table :articles, : 
     | 
| 
      
 135 
     | 
    
         
            +
                create_table :articles, force: true do |t|
         
     | 
| 
       118 
136 
     | 
    
         
             
                  t.string :title
         
     | 
| 
       119 
137 
     | 
    
         
             
                  t.string :content
         
     | 
| 
       120 
138 
     | 
    
         
             
                  t.string :abstract
         
     | 
| 
       121 
139 
     | 
    
         
             
                  t.string :file_upload
         
     | 
| 
       122 
140 
     | 
    
         
             
                end
         
     | 
| 
       123 
141 
     | 
    
         | 
| 
       124 
     | 
    
         
            -
                create_table :books, : 
     | 
| 
      
 142 
     | 
    
         
            +
                create_table :books, force: true do |t|
         
     | 
| 
       125 
143 
     | 
    
         
             
                  t.string :title
         
     | 
| 
       126 
144 
     | 
    
         
             
                end
         
     | 
| 
       127 
145 
     | 
    
         | 
| 
       128 
     | 
    
         
            -
                create_table :authorships, : 
     | 
| 
      
 146 
     | 
    
         
            +
                create_table :authorships, force: true do |t|
         
     | 
| 
       129 
147 
     | 
    
         
             
                  t.integer :book_id
         
     | 
| 
       130 
     | 
    
         
            -
                  t.integer : 
     | 
| 
      
 148 
     | 
    
         
            +
                  t.integer :author_id
         
     | 
| 
       131 
149 
     | 
    
         
             
                end
         
     | 
| 
       132 
150 
     | 
    
         | 
| 
       133 
     | 
    
         
            -
                create_table :people, : 
     | 
| 
      
 151 
     | 
    
         
            +
                create_table :people, force: true do |t|
         
     | 
| 
       134 
152 
     | 
    
         
             
                  t.string :name
         
     | 
| 
       135 
153 
     | 
    
         
             
                  t.string :time_zone
         
     | 
| 
       136 
154 
     | 
    
         
             
                end
         
     | 
| 
       137 
155 
     | 
    
         | 
| 
       138 
     | 
    
         
            -
                create_table :editorships, : 
     | 
| 
      
 156 
     | 
    
         
            +
                create_table :editorships, force: true do |t|
         
     | 
| 
       139 
157 
     | 
    
         
             
                  t.integer :book_id
         
     | 
| 
       140 
158 
     | 
    
         
             
                  t.integer :editor_id
         
     | 
| 
       141 
159 
     | 
    
         
             
                end
         
     | 
| 
       142 
160 
     | 
    
         | 
| 
       143 
     | 
    
         
            -
                create_table :editors, : 
     | 
| 
      
 161 
     | 
    
         
            +
                create_table :editors, force: true do |t|
         
     | 
| 
       144 
162 
     | 
    
         
             
                  t.string :name
         
     | 
| 
       145 
163 
     | 
    
         
             
                end
         
     | 
| 
       146 
164 
     | 
    
         | 
| 
       147 
     | 
    
         
            -
                create_table :songs, : 
     | 
| 
      
 165 
     | 
    
         
            +
                create_table :songs, force: true do |t|
         
     | 
| 
       148 
166 
     | 
    
         
             
                  t.integer :length
         
     | 
| 
       149 
167 
     | 
    
         
             
                end
         
     | 
| 
       150 
168 
     | 
    
         | 
| 
       151 
     | 
    
         
            -
                create_table :posts, : 
     | 
| 
      
 169 
     | 
    
         
            +
                create_table :posts, force: true do |t|
         
     | 
| 
       152 
170 
     | 
    
         
             
                  t.string :title
         
     | 
| 
       153 
171 
     | 
    
         
             
                  t.string :content
         
     | 
| 
       154 
172 
     | 
    
         
             
                end
         
     | 
| 
       155 
173 
     | 
    
         | 
| 
       156 
     | 
    
         
            -
                create_table :post_with_statuses, : 
     | 
| 
      
 174 
     | 
    
         
            +
                create_table :post_with_statuses, force: true do |t|
         
     | 
| 
       157 
175 
     | 
    
         
             
                  t.integer :status
         
     | 
| 
       158 
176 
     | 
    
         
             
                end
         
     | 
| 
       159 
177 
     | 
    
         | 
| 
       160 
     | 
    
         
            -
                create_table :animals, : 
     | 
| 
      
 178 
     | 
    
         
            +
                create_table :animals, force: true do |t|
         
     | 
| 
       161 
179 
     | 
    
         
             
                  t.string :name
         
     | 
| 
       162 
     | 
    
         
            -
                  t.string :species 
     | 
| 
      
 180 
     | 
    
         
            +
                  t.string :species # single table inheritance column
         
     | 
| 
       163 
181 
     | 
    
         
             
                end
         
     | 
| 
       164 
182 
     | 
    
         | 
| 
       165 
     | 
    
         
            -
                create_table :documents, : 
     | 
| 
      
 183 
     | 
    
         
            +
                create_table :documents, force: true do |t|
         
     | 
| 
       166 
184 
     | 
    
         
             
                  t.string :name
         
     | 
| 
       167 
185 
     | 
    
         
             
                end
         
     | 
| 
       168 
186 
     | 
    
         | 
| 
       169 
     | 
    
         
            -
                create_table :legacy_widgets, : 
     | 
| 
      
 187 
     | 
    
         
            +
                create_table :legacy_widgets, force: true do |t|
         
     | 
| 
       170 
188 
     | 
    
         
             
                  t.string    :name
         
     | 
| 
       171 
189 
     | 
    
         
             
                  t.integer   :version
         
     | 
| 
       172 
190 
     | 
    
         
             
                end
         
     | 
| 
       173 
191 
     | 
    
         | 
| 
       174 
     | 
    
         
            -
                create_table :things, : 
     | 
| 
      
 192 
     | 
    
         
            +
                create_table :things, force: true do |t|
         
     | 
| 
       175 
193 
     | 
    
         
             
                  t.string    :name
         
     | 
| 
       176 
194 
     | 
    
         
             
                end
         
     | 
| 
       177 
195 
     | 
    
         | 
| 
       178 
     | 
    
         
            -
                create_table :translations, : 
     | 
| 
      
 196 
     | 
    
         
            +
                create_table :translations, force: true do |t|
         
     | 
| 
       179 
197 
     | 
    
         
             
                  t.string    :headline
         
     | 
| 
       180 
198 
     | 
    
         
             
                  t.string    :content
         
     | 
| 
       181 
199 
     | 
    
         
             
                  t.string    :language_code
         
     | 
| 
       182 
200 
     | 
    
         
             
                  t.string    :type
         
     | 
| 
       183 
201 
     | 
    
         
             
                end
         
     | 
| 
       184 
202 
     | 
    
         | 
| 
       185 
     | 
    
         
            -
                create_table :gadgets, : 
     | 
| 
      
 203 
     | 
    
         
            +
                create_table :gadgets, force: true do |t|
         
     | 
| 
       186 
204 
     | 
    
         
             
                  t.string    :name
         
     | 
| 
       187 
205 
     | 
    
         
             
                  t.string    :brand
         
     | 
| 
       188 
     | 
    
         
            -
                  t.timestamps : 
     | 
| 
      
 206 
     | 
    
         
            +
                  t.timestamps null: true
         
     | 
| 
       189 
207 
     | 
    
         
             
                end
         
     | 
| 
       190 
208 
     | 
    
         | 
| 
       191 
     | 
    
         
            -
                create_table :customers, : 
     | 
| 
       192 
     | 
    
         
            -
                  t.string 
     | 
| 
      
 209 
     | 
    
         
            +
                create_table :customers, force: true do |t|
         
     | 
| 
      
 210 
     | 
    
         
            +
                  t.string :name
         
     | 
| 
       193 
211 
     | 
    
         
             
                end
         
     | 
| 
       194 
212 
     | 
    
         | 
| 
       195 
     | 
    
         
            -
                create_table :orders, : 
     | 
| 
      
 213 
     | 
    
         
            +
                create_table :orders, force: true do |t|
         
     | 
| 
       196 
214 
     | 
    
         
             
                  t.integer :customer_id
         
     | 
| 
       197 
215 
     | 
    
         
             
                  t.string  :order_date
         
     | 
| 
       198 
216 
     | 
    
         
             
                end
         
     | 
| 
       199 
217 
     | 
    
         | 
| 
       200 
     | 
    
         
            -
                create_table :line_items, : 
     | 
| 
      
 218 
     | 
    
         
            +
                create_table :line_items, force: true do |t|
         
     | 
| 
       201 
219 
     | 
    
         
             
                  t.integer :order_id
         
     | 
| 
       202 
220 
     | 
    
         
             
                  t.string  :product
         
     | 
| 
       203 
221 
     | 
    
         
             
                end
         
     | 
| 
       204 
222 
     | 
    
         | 
| 
       205 
     | 
    
         
            -
                create_table :fruits, : 
     | 
| 
      
 223 
     | 
    
         
            +
                create_table :fruits, force: true do |t|
         
     | 
| 
       206 
224 
     | 
    
         
             
                  t.string :name
         
     | 
| 
       207 
225 
     | 
    
         
             
                  t.string :color
         
     | 
| 
       208 
226 
     | 
    
         
             
                end
         
     | 
| 
       209 
227 
     | 
    
         | 
| 
       210 
     | 
    
         
            -
                create_table :boolits, : 
     | 
| 
      
 228 
     | 
    
         
            +
                create_table :boolits, force: true do |t|
         
     | 
| 
       211 
229 
     | 
    
         
             
                  t.string :name
         
     | 
| 
       212 
     | 
    
         
            -
                  t.boolean :scoped, : 
     | 
| 
      
 230 
     | 
    
         
            +
                  t.boolean :scoped, default: true
         
     | 
| 
       213 
231 
     | 
    
         
             
                end
         
     | 
| 
       214 
232 
     | 
    
         | 
| 
       215 
     | 
    
         
            -
                create_table :callback_modifiers, : 
     | 
| 
      
 233 
     | 
    
         
            +
                create_table :callback_modifiers, force: true do |t|
         
     | 
| 
       216 
234 
     | 
    
         
             
                  t.string  :some_content
         
     | 
| 
       217 
     | 
    
         
            -
                  t.boolean :deleted, : 
     | 
| 
      
 235 
     | 
    
         
            +
                  t.boolean :deleted, default: false
         
     | 
| 
       218 
236 
     | 
    
         
             
                end
         
     | 
| 
       219 
237 
     | 
    
         | 
| 
       220 
     | 
    
         
            -
                create_table :chapters, : 
     | 
| 
      
 238 
     | 
    
         
            +
                create_table :chapters, force: true do |t|
         
     | 
| 
       221 
239 
     | 
    
         
             
                  t.string :name
         
     | 
| 
       222 
240 
     | 
    
         
             
                end
         
     | 
| 
       223 
241 
     | 
    
         | 
| 
       224 
     | 
    
         
            -
                create_table :sections, : 
     | 
| 
      
 242 
     | 
    
         
            +
                create_table :sections, force: true do |t|
         
     | 
| 
       225 
243 
     | 
    
         
             
                  t.integer :chapter_id
         
     | 
| 
       226 
244 
     | 
    
         
             
                  t.string :name
         
     | 
| 
       227 
245 
     | 
    
         
             
                end
         
     | 
| 
       228 
246 
     | 
    
         | 
| 
       229 
     | 
    
         
            -
                create_table :paragraphs, : 
     | 
| 
      
 247 
     | 
    
         
            +
                create_table :paragraphs, force: true do |t|
         
     | 
| 
       230 
248 
     | 
    
         
             
                  t.integer :section_id
         
     | 
| 
       231 
249 
     | 
    
         
             
                  t.string :name
         
     | 
| 
       232 
250 
     | 
    
         
             
                end
         
     | 
| 
       233 
251 
     | 
    
         | 
| 
       234 
     | 
    
         
            -
                create_table :quotations, : 
     | 
| 
      
 252 
     | 
    
         
            +
                create_table :quotations, force: true do |t|
         
     | 
| 
       235 
253 
     | 
    
         
             
                  t.integer :chapter_id
         
     | 
| 
       236 
254 
     | 
    
         
             
                end
         
     | 
| 
       237 
255 
     | 
    
         | 
| 
       238 
     | 
    
         
            -
                create_table :citations, : 
     | 
| 
      
 256 
     | 
    
         
            +
                create_table :citations, force: true do |t|
         
     | 
| 
       239 
257 
     | 
    
         
             
                  t.integer :quotation_id
         
     | 
| 
       240 
258 
     | 
    
         
             
                end
         
     | 
| 
      
 259 
     | 
    
         
            +
             
     | 
| 
      
 260 
     | 
    
         
            +
                create_table :foo_habtms, force: true do |t|
         
     | 
| 
      
 261 
     | 
    
         
            +
                  t.string :name
         
     | 
| 
      
 262 
     | 
    
         
            +
                end
         
     | 
| 
      
 263 
     | 
    
         
            +
             
     | 
| 
      
 264 
     | 
    
         
            +
                create_table :bar_habtms, force: true do |t|
         
     | 
| 
      
 265 
     | 
    
         
            +
                  t.string :name
         
     | 
| 
      
 266 
     | 
    
         
            +
                end
         
     | 
| 
      
 267 
     | 
    
         
            +
             
     | 
| 
      
 268 
     | 
    
         
            +
                create_table :bar_habtms_foo_habtms, force: true, id: false do |t|
         
     | 
| 
      
 269 
     | 
    
         
            +
                  t.integer :foo_habtm_id
         
     | 
| 
      
 270 
     | 
    
         
            +
                  t.integer :bar_habtm_id
         
     | 
| 
      
 271 
     | 
    
         
            +
                end
         
     | 
| 
      
 272 
     | 
    
         
            +
                add_index :bar_habtms_foo_habtms, [:foo_habtm_id]
         
     | 
| 
      
 273 
     | 
    
         
            +
                add_index :bar_habtms_foo_habtms, [:bar_habtm_id]
         
     | 
| 
       241 
274 
     | 
    
         
             
              end
         
     | 
| 
       242 
275 
     | 
    
         | 
| 
       243 
     | 
    
         
            -
              def  
     | 
| 
      
 276 
     | 
    
         
            +
              def down
         
     | 
| 
      
 277 
     | 
    
         
            +
                drop_table :bar_habtms_foo_habtms
         
     | 
| 
      
 278 
     | 
    
         
            +
                drop_table :foo_habtms
         
     | 
| 
      
 279 
     | 
    
         
            +
                drop_table :bar_habtms
         
     | 
| 
       244 
280 
     | 
    
         
             
                drop_table :citations
         
     | 
| 
       245 
281 
     | 
    
         
             
                drop_table :quotations
         
     | 
| 
       246 
282 
     | 
    
         
             
                drop_table :animals
         
     | 
| 
         @@ -257,12 +293,12 @@ class SetUpTestTables < ActiveRecord::Migration 
     | 
|
| 
       257 
293 
     | 
    
         
             
                drop_table :whatchamajiggers
         
     | 
| 
       258 
294 
     | 
    
         
             
                drop_table :fluxors
         
     | 
| 
       259 
295 
     | 
    
         
             
                drop_table :wotsits
         
     | 
| 
       260 
     | 
    
         
            -
                remove_index :post_versions, : 
     | 
| 
      
 296 
     | 
    
         
            +
                remove_index :post_versions, column: [:item_type, :item_id]
         
     | 
| 
       261 
297 
     | 
    
         
             
                drop_table :post_versions
         
     | 
| 
       262 
     | 
    
         
            -
                remove_index :versions, : 
     | 
| 
      
 298 
     | 
    
         
            +
                remove_index :versions, column: [:item_type, :item_id]
         
     | 
| 
       263 
299 
     | 
    
         
             
                drop_table :versions
         
     | 
| 
       264 
300 
     | 
    
         
             
                if JsonVersion.table_exists?
         
     | 
| 
       265 
     | 
    
         
            -
                  remove_index :json_versions, : 
     | 
| 
      
 301 
     | 
    
         
            +
                  remove_index :json_versions, column: [:item_type, :item_id]
         
     | 
| 
       266 
302 
     | 
    
         
             
                  drop_table :json_versions
         
     | 
| 
       267 
303 
     | 
    
         
             
                end
         
     | 
| 
       268 
304 
     | 
    
         
             
                drop_table :widgets
         
     | 
| 
         @@ -279,9 +315,19 @@ class SetUpTestTables < ActiveRecord::Migration 
     | 
|
| 
       279 
315 
     | 
    
         
             
                drop_table :chapters
         
     | 
| 
       280 
316 
     | 
    
         
             
                drop_table :sections
         
     | 
| 
       281 
317 
     | 
    
         
             
                drop_table :paragraphs
         
     | 
| 
       282 
     | 
    
         
            -
                remove_index :version_associations, : 
     | 
| 
       283 
     | 
    
         
            -
                remove_index :version_associations, : 
     | 
| 
      
 318 
     | 
    
         
            +
                remove_index :version_associations, column: [:version_id]
         
     | 
| 
      
 319 
     | 
    
         
            +
                remove_index :version_associations, name: "index_version_associations_on_foreign_key"
         
     | 
| 
       284 
320 
     | 
    
         
             
                drop_table :version_associations
         
     | 
| 
       285 
321 
     | 
    
         
             
                drop_table :callback_modifiers
         
     | 
| 
       286 
322 
     | 
    
         
             
              end
         
     | 
| 
      
 323 
     | 
    
         
            +
             
     | 
| 
      
 324 
     | 
    
         
            +
              private
         
     | 
| 
      
 325 
     | 
    
         
            +
             
     | 
| 
      
 326 
     | 
    
         
            +
              def versions_table_options
         
     | 
| 
      
 327 
     | 
    
         
            +
                opts = { force: true }
         
     | 
| 
      
 328 
     | 
    
         
            +
                if MYSQL_ADAPTERS.include?(connection.class.name)
         
     | 
| 
      
 329 
     | 
    
         
            +
                  opts[:options] = "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci"
         
     | 
| 
      
 330 
     | 
    
         
            +
                end
         
     | 
| 
      
 331 
     | 
    
         
            +
                opts
         
     | 
| 
      
 332 
     | 
    
         
            +
              end
         
     | 
| 
       287 
333 
     | 
    
         
             
            end
         
     | 
    
        data/test/dummy/db/schema.rb
    CHANGED
    
    | 
         @@ -27,7 +27,7 @@ ActiveRecord::Schema.define(version: 20110208155312) do 
     | 
|
| 
       27 
27 
     | 
    
         | 
| 
       28 
28 
     | 
    
         
             
              create_table "authorships", force: :cascade do |t|
         
     | 
| 
       29 
29 
     | 
    
         
             
                t.integer "book_id"
         
     | 
| 
       30 
     | 
    
         
            -
                t.integer " 
     | 
| 
      
 30 
     | 
    
         
            +
                t.integer "author_id"
         
     | 
| 
       31 
31 
     | 
    
         
             
              end
         
     | 
| 
       32 
32 
     | 
    
         | 
| 
       33 
33 
     | 
    
         
             
              create_table "banana_versions", force: :cascade do |t|
         
     | 
| 
         @@ -46,6 +46,18 @@ ActiveRecord::Schema.define(version: 20110208155312) do 
     | 
|
| 
       46 
46 
     | 
    
         
             
                t.datetime "updated_at"
         
     | 
| 
       47 
47 
     | 
    
         
             
              end
         
     | 
| 
       48 
48 
     | 
    
         | 
| 
      
 49 
     | 
    
         
            +
              create_table "bar_habtms", force: :cascade do |t|
         
     | 
| 
      
 50 
     | 
    
         
            +
                t.string "name"
         
     | 
| 
      
 51 
     | 
    
         
            +
              end
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
              create_table "bar_habtms_foo_habtms", id: false, force: :cascade do |t|
         
     | 
| 
      
 54 
     | 
    
         
            +
                t.integer "foo_habtm_id"
         
     | 
| 
      
 55 
     | 
    
         
            +
                t.integer "bar_habtm_id"
         
     | 
| 
      
 56 
     | 
    
         
            +
              end
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
              add_index "bar_habtms_foo_habtms", ["bar_habtm_id"], name: "index_bar_habtms_foo_habtms_on_bar_habtm_id"
         
     | 
| 
      
 59 
     | 
    
         
            +
              add_index "bar_habtms_foo_habtms", ["foo_habtm_id"], name: "index_bar_habtms_foo_habtms_on_foo_habtm_id"
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
       49 
61 
     | 
    
         
             
              create_table "books", force: :cascade do |t|
         
     | 
| 
       50 
62 
     | 
    
         
             
                t.string "title"
         
     | 
| 
       51 
63 
     | 
    
         
             
              end
         
     | 
| 
         @@ -90,6 +102,10 @@ ActiveRecord::Schema.define(version: 20110208155312) do 
     | 
|
| 
       90 
102 
     | 
    
         
             
                t.string  "name"
         
     | 
| 
       91 
103 
     | 
    
         
             
              end
         
     | 
| 
       92 
104 
     | 
    
         | 
| 
      
 105 
     | 
    
         
            +
              create_table "foo_habtms", force: :cascade do |t|
         
     | 
| 
      
 106 
     | 
    
         
            +
                t.string "name"
         
     | 
| 
      
 107 
     | 
    
         
            +
              end
         
     | 
| 
      
 108 
     | 
    
         
            +
             
     | 
| 
       93 
109 
     | 
    
         
             
              create_table "fruits", force: :cascade do |t|
         
     | 
| 
       94 
110 
     | 
    
         
             
                t.string "name"
         
     | 
| 
       95 
111 
     | 
    
         
             
                t.string "color"
         
     | 
| 
         @@ -185,6 +201,13 @@ ActiveRecord::Schema.define(version: 20110208155312) do 
     | 
|
| 
       185 
201 
     | 
    
         
             
                t.string "type"
         
     | 
| 
       186 
202 
     | 
    
         
             
              end
         
     | 
| 
       187 
203 
     | 
    
         | 
| 
      
 204 
     | 
    
         
            +
              create_table "vehicles", force: :cascade do |t|
         
     | 
| 
      
 205 
     | 
    
         
            +
                t.string   "name",       null: false
         
     | 
| 
      
 206 
     | 
    
         
            +
                t.string   "type",       null: false
         
     | 
| 
      
 207 
     | 
    
         
            +
                t.datetime "created_at", null: false
         
     | 
| 
      
 208 
     | 
    
         
            +
                t.datetime "updated_at", null: false
         
     | 
| 
      
 209 
     | 
    
         
            +
              end
         
     | 
| 
      
 210 
     | 
    
         
            +
             
     | 
| 
       188 
211 
     | 
    
         
             
              create_table "version_associations", force: :cascade do |t|
         
     | 
| 
       189 
212 
     | 
    
         
             
                t.integer "version_id"
         
     | 
| 
       190 
213 
     | 
    
         
             
                t.string  "foreign_key_name", null: false
         
     | 
| 
         @@ -195,12 +218,12 @@ ActiveRecord::Schema.define(version: 20110208155312) do 
     | 
|
| 
       195 
218 
     | 
    
         
             
              add_index "version_associations", ["version_id"], name: "index_version_associations_on_version_id"
         
     | 
| 
       196 
219 
     | 
    
         | 
| 
       197 
220 
     | 
    
         
             
              create_table "versions", force: :cascade do |t|
         
     | 
| 
       198 
     | 
    
         
            -
                t.string   "item_type", 
     | 
| 
       199 
     | 
    
         
            -
                t.integer  "item_id", 
     | 
| 
       200 
     | 
    
         
            -
                t.string   "event", 
     | 
| 
      
 221 
     | 
    
         
            +
                t.string   "item_type",                         null: false
         
     | 
| 
      
 222 
     | 
    
         
            +
                t.integer  "item_id",                           null: false
         
     | 
| 
      
 223 
     | 
    
         
            +
                t.string   "event",                             null: false
         
     | 
| 
       201 
224 
     | 
    
         
             
                t.string   "whodunnit"
         
     | 
| 
       202 
     | 
    
         
            -
                t.text     "object"
         
     | 
| 
       203 
     | 
    
         
            -
                t.text     "object_changes"
         
     | 
| 
      
 225 
     | 
    
         
            +
                t.text     "object",         limit: 1073741823
         
     | 
| 
      
 226 
     | 
    
         
            +
                t.text     "object_changes", limit: 1073741823
         
     | 
| 
       204 
227 
     | 
    
         
             
                t.integer  "transaction_id"
         
     | 
| 
       205 
228 
     | 
    
         
             
                t.datetime "created_at"
         
     | 
| 
       206 
229 
     | 
    
         
             
                t.integer  "answer"
         
     |