paper_trail 4.2.0 → 7.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (171) hide show
  1. checksums.yaml +4 -4
  2. data/lib/generators/paper_trail/install_generator.rb +91 -17
  3. data/lib/generators/paper_trail/templates/add_object_changes_to_versions.rb.erb +12 -0
  4. data/lib/generators/paper_trail/templates/{add_transaction_id_column_to_versions.rb → add_transaction_id_column_to_versions.rb.erb} +3 -1
  5. data/lib/generators/paper_trail/templates/create_version_associations.rb.erb +22 -0
  6. data/lib/generators/paper_trail/templates/{create_versions.rb → create_versions.rb.erb} +9 -7
  7. data/lib/paper_trail.rb +180 -148
  8. data/lib/paper_trail/attribute_serializers/README.md +10 -0
  9. data/lib/paper_trail/attribute_serializers/cast_attribute_serializer.rb +80 -0
  10. data/lib/paper_trail/attribute_serializers/legacy_active_record_shim.rb +48 -0
  11. data/lib/paper_trail/attribute_serializers/object_attribute.rb +39 -0
  12. data/lib/paper_trail/attribute_serializers/object_changes_attribute.rb +42 -0
  13. data/lib/paper_trail/cleaner.rb +16 -10
  14. data/lib/paper_trail/config.rb +28 -27
  15. data/lib/paper_trail/frameworks/active_record/models/paper_trail/version.rb +5 -1
  16. data/lib/paper_trail/frameworks/active_record/models/paper_trail/version_association.rb +6 -2
  17. data/lib/paper_trail/frameworks/cucumber.rb +1 -0
  18. data/lib/paper_trail/frameworks/rails.rb +2 -7
  19. data/lib/paper_trail/frameworks/rails/controller.rb +20 -18
  20. data/lib/paper_trail/frameworks/rails/engine.rb +6 -1
  21. data/lib/paper_trail/frameworks/rspec.rb +17 -6
  22. data/lib/paper_trail/frameworks/rspec/helpers.rb +3 -1
  23. data/lib/paper_trail/has_paper_trail.rb +25 -503
  24. data/lib/paper_trail/model_config.rb +207 -0
  25. data/lib/paper_trail/queries/versions/where_object.rb +60 -0
  26. data/lib/paper_trail/queries/versions/where_object_changes.rb +68 -0
  27. data/lib/paper_trail/record_history.rb +2 -12
  28. data/lib/paper_trail/record_trail.rb +573 -0
  29. data/lib/paper_trail/reifier.rb +164 -215
  30. data/lib/paper_trail/reifiers/belongs_to.rb +48 -0
  31. data/lib/paper_trail/reifiers/has_and_belongs_to_many.rb +50 -0
  32. data/lib/paper_trail/reifiers/has_many.rb +110 -0
  33. data/lib/paper_trail/reifiers/has_many_through.rb +90 -0
  34. data/lib/paper_trail/reifiers/has_one.rb +76 -0
  35. data/lib/paper_trail/serializers/json.rb +16 -7
  36. data/lib/paper_trail/serializers/yaml.rb +9 -13
  37. data/lib/paper_trail/version_association_concern.rb +3 -5
  38. data/lib/paper_trail/version_concern.rb +138 -111
  39. data/lib/paper_trail/version_number.rb +10 -9
  40. metadata +95 -327
  41. data/.gitignore +0 -22
  42. data/.rspec +0 -2
  43. data/.travis.yml +0 -41
  44. data/CHANGELOG.md +0 -362
  45. data/CONTRIBUTING.md +0 -84
  46. data/Gemfile +0 -2
  47. data/MIT-LICENSE +0 -20
  48. data/README.md +0 -1535
  49. data/Rakefile +0 -30
  50. data/doc/bug_report_template.rb +0 -65
  51. data/gemfiles/ar3.gemfile +0 -61
  52. data/lib/generators/paper_trail/templates/add_object_changes_to_versions.rb +0 -10
  53. data/lib/generators/paper_trail/templates/create_version_associations.rb +0 -17
  54. data/lib/paper_trail/attributes_serialization.rb +0 -89
  55. data/lib/paper_trail/frameworks/sinatra.rb +0 -38
  56. data/paper_trail.gemspec +0 -59
  57. data/spec/generators/install_generator_spec.rb +0 -67
  58. data/spec/models/animal_spec.rb +0 -36
  59. data/spec/models/boolit_spec.rb +0 -48
  60. data/spec/models/callback_modifier_spec.rb +0 -96
  61. data/spec/models/fluxor_spec.rb +0 -19
  62. data/spec/models/gadget_spec.rb +0 -70
  63. data/spec/models/joined_version_spec.rb +0 -47
  64. data/spec/models/json_version_spec.rb +0 -103
  65. data/spec/models/kitchen/banana_spec.rb +0 -14
  66. data/spec/models/not_on_update_spec.rb +0 -19
  67. data/spec/models/post_with_status_spec.rb +0 -17
  68. data/spec/models/skipper_spec.rb +0 -46
  69. data/spec/models/thing_spec.rb +0 -11
  70. data/spec/models/version_spec.rb +0 -239
  71. data/spec/models/widget_spec.rb +0 -298
  72. data/spec/modules/paper_trail_spec.rb +0 -27
  73. data/spec/modules/version_concern_spec.rb +0 -32
  74. data/spec/modules/version_number_spec.rb +0 -44
  75. data/spec/paper_trail/config_spec.rb +0 -52
  76. data/spec/paper_trail_spec.rb +0 -66
  77. data/spec/rails_helper.rb +0 -34
  78. data/spec/requests/articles_spec.rb +0 -30
  79. data/spec/spec_helper.rb +0 -95
  80. data/spec/support/alt_db_init.rb +0 -59
  81. data/test/custom_json_serializer.rb +0 -13
  82. data/test/dummy/Rakefile +0 -7
  83. data/test/dummy/app/controllers/application_controller.rb +0 -20
  84. data/test/dummy/app/controllers/articles_controller.rb +0 -17
  85. data/test/dummy/app/controllers/test_controller.rb +0 -5
  86. data/test/dummy/app/controllers/widgets_controller.rb +0 -31
  87. data/test/dummy/app/helpers/application_helper.rb +0 -2
  88. data/test/dummy/app/models/animal.rb +0 -6
  89. data/test/dummy/app/models/article.rb +0 -16
  90. data/test/dummy/app/models/authorship.rb +0 -5
  91. data/test/dummy/app/models/book.rb +0 -9
  92. data/test/dummy/app/models/boolit.rb +0 -4
  93. data/test/dummy/app/models/callback_modifier.rb +0 -45
  94. data/test/dummy/app/models/cat.rb +0 -2
  95. data/test/dummy/app/models/chapter.rb +0 -9
  96. data/test/dummy/app/models/citation.rb +0 -5
  97. data/test/dummy/app/models/customer.rb +0 -4
  98. data/test/dummy/app/models/document.rb +0 -4
  99. data/test/dummy/app/models/dog.rb +0 -2
  100. data/test/dummy/app/models/editor.rb +0 -4
  101. data/test/dummy/app/models/editorship.rb +0 -5
  102. data/test/dummy/app/models/elephant.rb +0 -3
  103. data/test/dummy/app/models/fluxor.rb +0 -3
  104. data/test/dummy/app/models/foo_widget.rb +0 -2
  105. data/test/dummy/app/models/fruit.rb +0 -5
  106. data/test/dummy/app/models/gadget.rb +0 -3
  107. data/test/dummy/app/models/kitchen/banana.rb +0 -5
  108. data/test/dummy/app/models/legacy_widget.rb +0 -4
  109. data/test/dummy/app/models/line_item.rb +0 -4
  110. data/test/dummy/app/models/not_on_update.rb +0 -4
  111. data/test/dummy/app/models/order.rb +0 -5
  112. data/test/dummy/app/models/paragraph.rb +0 -5
  113. data/test/dummy/app/models/person.rb +0 -38
  114. data/test/dummy/app/models/post.rb +0 -3
  115. data/test/dummy/app/models/post_with_status.rb +0 -8
  116. data/test/dummy/app/models/protected_widget.rb +0 -3
  117. data/test/dummy/app/models/quotation.rb +0 -5
  118. data/test/dummy/app/models/section.rb +0 -6
  119. data/test/dummy/app/models/skipper.rb +0 -6
  120. data/test/dummy/app/models/song.rb +0 -32
  121. data/test/dummy/app/models/thing.rb +0 -3
  122. data/test/dummy/app/models/translation.rb +0 -4
  123. data/test/dummy/app/models/whatchamajigger.rb +0 -4
  124. data/test/dummy/app/models/widget.rb +0 -15
  125. data/test/dummy/app/models/wotsit.rb +0 -8
  126. data/test/dummy/app/versions/joined_version.rb +0 -5
  127. data/test/dummy/app/versions/json_version.rb +0 -3
  128. data/test/dummy/app/versions/kitchen/banana_version.rb +0 -5
  129. data/test/dummy/app/versions/post_version.rb +0 -3
  130. data/test/dummy/app/views/layouts/application.html.erb +0 -14
  131. data/test/dummy/config.ru +0 -4
  132. data/test/dummy/config/application.rb +0 -69
  133. data/test/dummy/config/boot.rb +0 -10
  134. data/test/dummy/config/database.mysql.yml +0 -19
  135. data/test/dummy/config/database.postgres.yml +0 -15
  136. data/test/dummy/config/database.sqlite.yml +0 -15
  137. data/test/dummy/config/environment.rb +0 -5
  138. data/test/dummy/config/environments/development.rb +0 -40
  139. data/test/dummy/config/environments/production.rb +0 -73
  140. data/test/dummy/config/environments/test.rb +0 -41
  141. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  142. data/test/dummy/config/initializers/inflections.rb +0 -10
  143. data/test/dummy/config/initializers/mime_types.rb +0 -5
  144. data/test/dummy/config/initializers/paper_trail.rb +0 -10
  145. data/test/dummy/config/initializers/secret_token.rb +0 -7
  146. data/test/dummy/config/initializers/session_store.rb +0 -8
  147. data/test/dummy/config/locales/en.yml +0 -5
  148. data/test/dummy/config/routes.rb +0 -4
  149. data/test/dummy/db/migrate/20110208155312_set_up_test_tables.rb +0 -287
  150. data/test/dummy/db/schema.rb +0 -246
  151. data/test/dummy/script/rails +0 -6
  152. data/test/functional/controller_test.rb +0 -91
  153. data/test/functional/enabled_for_controller_test.rb +0 -29
  154. data/test/functional/modular_sinatra_test.rb +0 -48
  155. data/test/functional/sinatra_test.rb +0 -49
  156. data/test/functional/thread_safety_test.rb +0 -48
  157. data/test/paper_trail_test.rb +0 -38
  158. data/test/test_helper.rb +0 -105
  159. data/test/time_travel_helper.rb +0 -15
  160. data/test/unit/associations_test.rb +0 -726
  161. data/test/unit/cleaner_test.rb +0 -182
  162. data/test/unit/inheritance_column_test.rb +0 -43
  163. data/test/unit/model_test.rb +0 -1373
  164. data/test/unit/protected_attrs_test.rb +0 -47
  165. data/test/unit/serializer_test.rb +0 -117
  166. data/test/unit/serializers/json_test.rb +0 -88
  167. data/test/unit/serializers/mixin_json_test.rb +0 -36
  168. data/test/unit/serializers/mixin_yaml_test.rb +0 -49
  169. data/test/unit/serializers/yaml_test.rb +0 -52
  170. data/test/unit/timestamp_test.rb +0 -43
  171. data/test/unit/version_test.rb +0 -119
@@ -1,8 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- Dummy::Application.config.session_store :cookie_store, :key => '_dummy_session'
4
-
5
- # Use the database for sessions instead of the cookie-based default,
6
- # which shouldn't be used to store highly confidential information
7
- # (create the session table with "rails generate session_migration")
8
- # Dummy::Application.config.session_store :active_record_store
@@ -1,5 +0,0 @@
1
- # Sample localization file for English. Add more files in this directory for other locales.
2
- # See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
3
-
4
- en:
5
- hello: "Hello world"
@@ -1,4 +0,0 @@
1
- Dummy::Application.routes.draw do
2
- resources :articles, :only => [:create]
3
- resources :widgets, :only => [:create, :update, :destroy]
4
- end
@@ -1,287 +0,0 @@
1
- class SetUpTestTables < ActiveRecord::Migration
2
- def self.up
3
- create_table :skippers, :force => true do |t|
4
- t.string :name
5
- t.datetime :another_timestamp
6
- t.timestamps :null => true
7
- end
8
-
9
- create_table :widgets, :force => true do |t|
10
- t.string :name
11
- t.text :a_text
12
- t.integer :an_integer
13
- t.float :a_float
14
- t.decimal :a_decimal, :precision => 6, :scale => 4
15
- t.datetime :a_datetime
16
- t.time :a_time
17
- t.date :a_date
18
- t.boolean :a_boolean
19
- t.string :sacrificial_column
20
- t.string :type
21
- t.timestamps :null => true
22
- end
23
-
24
- create_table :versions, :force => true do |t|
25
- t.string :item_type, :null => false
26
- t.integer :item_id, :null => false
27
- t.string :event, :null => false
28
- t.string :whodunnit
29
- t.text :object
30
- t.text :object_changes
31
- t.integer :transaction_id
32
- t.datetime :created_at
33
-
34
- # Metadata columns.
35
- t.integer :answer
36
- t.string :action
37
- t.string :question
38
- t.integer :article_id
39
- t.string :title
40
-
41
- # Controller info columns.
42
- t.string :ip
43
- t.string :user_agent
44
- end
45
- add_index :versions, [:item_type, :item_id]
46
-
47
- create_table :version_associations do |t|
48
- t.integer :version_id
49
- t.string :foreign_key_name, :null => false
50
- t.integer :foreign_key_id
51
- end
52
- add_index :version_associations, [:version_id]
53
- add_index :version_associations, [:foreign_key_name, :foreign_key_id], :name => 'index_version_associations_on_foreign_key'
54
-
55
- create_table :post_versions, :force => true do |t|
56
- t.string :item_type, :null => false
57
- t.integer :item_id, :null => false
58
- t.string :event, :null => false
59
- t.string :whodunnit
60
- t.text :object
61
- t.datetime :created_at
62
-
63
- # Controller info columns.
64
- t.string :ip
65
- t.string :user_agent
66
- end
67
- add_index :post_versions, [:item_type, :item_id]
68
-
69
- if ENV['DB'] == 'postgres' && ::ActiveRecord::VERSION::MAJOR >= 4
70
- create_table :json_versions, :force => true do |t|
71
- t.string :item_type, :null => false
72
- t.integer :item_id, :null => false
73
- t.string :event, :null => false
74
- t.string :whodunnit
75
- t.json :object
76
- t.json :object_changes
77
- t.datetime :created_at
78
- end
79
- add_index :json_versions, [:item_type, :item_id]
80
- end
81
-
82
- create_table :not_on_updates, :force => true do |t|
83
- t.timestamps :null => true
84
- end
85
-
86
- create_table :bananas, :force => true do |t|
87
- t.timestamps :null => true
88
- end
89
-
90
- create_table :banana_versions, :force => true do |t|
91
- t.string :item_type, :null => false
92
- t.integer :item_id, :null => false
93
- t.string :event, :null => false
94
- t.string :whodunnit
95
- t.text :object
96
- t.datetime :created_at
97
- end
98
- add_index :banana_versions, [:item_type, :item_id]
99
-
100
- create_table :wotsits, :force => true do |t|
101
- t.integer :widget_id
102
- t.string :name
103
- t.timestamps :null => true
104
- end
105
-
106
- create_table :fluxors, :force => true do |t|
107
- t.integer :widget_id
108
- t.string :name
109
- end
110
-
111
- create_table :whatchamajiggers, :force => true do |t|
112
- t.string :owner_type
113
- t.integer :owner_id
114
- t.string :name
115
- end
116
-
117
- create_table :articles, :force => true do |t|
118
- t.string :title
119
- t.string :content
120
- t.string :abstract
121
- t.string :file_upload
122
- end
123
-
124
- create_table :books, :force => true do |t|
125
- t.string :title
126
- end
127
-
128
- create_table :authorships, :force => true do |t|
129
- t.integer :book_id
130
- t.integer :person_id
131
- end
132
-
133
- create_table :people, :force => true do |t|
134
- t.string :name
135
- t.string :time_zone
136
- end
137
-
138
- create_table :editorships, :force => true do |t|
139
- t.integer :book_id
140
- t.integer :editor_id
141
- end
142
-
143
- create_table :editors, :force => true do |t|
144
- t.string :name
145
- end
146
-
147
- create_table :songs, :force => true do |t|
148
- t.integer :length
149
- end
150
-
151
- create_table :posts, :force => true do |t|
152
- t.string :title
153
- t.string :content
154
- end
155
-
156
- create_table :post_with_statuses, :force => true do |t|
157
- t.integer :status
158
- end
159
-
160
- create_table :animals, :force => true do |t|
161
- t.string :name
162
- t.string :species # single table inheritance column
163
- end
164
-
165
- create_table :documents, :force => true do |t|
166
- t.string :name
167
- end
168
-
169
- create_table :legacy_widgets, :force => true do |t|
170
- t.string :name
171
- t.integer :version
172
- end
173
-
174
- create_table :things, :force => true do |t|
175
- t.string :name
176
- end
177
-
178
- create_table :translations, :force => true do |t|
179
- t.string :headline
180
- t.string :content
181
- t.string :language_code
182
- t.string :type
183
- end
184
-
185
- create_table :gadgets, :force => true do |t|
186
- t.string :name
187
- t.string :brand
188
- t.timestamps :null => true
189
- end
190
-
191
- create_table :customers, :force => true do |t|
192
- t.string :name
193
- end
194
-
195
- create_table :orders, :force => true do |t|
196
- t.integer :customer_id
197
- t.string :order_date
198
- end
199
-
200
- create_table :line_items, :force => true do |t|
201
- t.integer :order_id
202
- t.string :product
203
- end
204
-
205
- create_table :fruits, :force => true do |t|
206
- t.string :name
207
- t.string :color
208
- end
209
-
210
- create_table :boolits, :force => true do |t|
211
- t.string :name
212
- t.boolean :scoped, :default => true
213
- end
214
-
215
- create_table :callback_modifiers, :force => true do |t|
216
- t.string :some_content
217
- t.boolean :deleted, :default => false
218
- end
219
-
220
- create_table :chapters, :force => true do |t|
221
- t.string :name
222
- end
223
-
224
- create_table :sections, :force => true do |t|
225
- t.integer :chapter_id
226
- t.string :name
227
- end
228
-
229
- create_table :paragraphs, :force => true do |t|
230
- t.integer :section_id
231
- t.string :name
232
- end
233
-
234
- create_table :quotations, :force => true do |t|
235
- t.integer :chapter_id
236
- end
237
-
238
- create_table :citations, :force => true do |t|
239
- t.integer :quotation_id
240
- end
241
- end
242
-
243
- def self.down
244
- drop_table :citations
245
- drop_table :quotations
246
- drop_table :animals
247
- drop_table :skippers
248
- drop_table :not_on_updates
249
- drop_table :posts
250
- drop_table :songs
251
- drop_table :editors
252
- drop_table :editorships
253
- drop_table :people
254
- drop_table :authorships
255
- drop_table :books
256
- drop_table :articles
257
- drop_table :whatchamajiggers
258
- drop_table :fluxors
259
- drop_table :wotsits
260
- remove_index :post_versions, :column => [:item_type, :item_id]
261
- drop_table :post_versions
262
- remove_index :versions, :column => [:item_type, :item_id]
263
- drop_table :versions
264
- if JsonVersion.table_exists?
265
- remove_index :json_versions, :column => [:item_type, :item_id]
266
- drop_table :json_versions
267
- end
268
- drop_table :widgets
269
- drop_table :documents
270
- drop_table :legacy_widgets
271
- drop_table :things
272
- drop_table :translations
273
- drop_table :gadgets
274
- drop_table :customers
275
- drop_table :orders
276
- drop_table :line_items
277
- drop_table :fruits
278
- drop_table :boolits
279
- drop_table :chapters
280
- drop_table :sections
281
- drop_table :paragraphs
282
- remove_index :version_associations, :column => [:version_id]
283
- remove_index :version_associations, :name => 'index_version_associations_on_foreign_key'
284
- drop_table :version_associations
285
- drop_table :callback_modifiers
286
- end
287
- end
@@ -1,246 +0,0 @@
1
- # encoding: UTF-8
2
- # This file is auto-generated from the current state of the database. Instead
3
- # of editing this file, please use the migrations feature of Active Record to
4
- # incrementally modify your database, and then regenerate this schema definition.
5
- #
6
- # Note that this schema.rb definition is the authoritative source for your
7
- # database schema. If you need to create the application database on another
8
- # system, you should be using db:schema:load, not running all the migrations
9
- # from scratch. The latter is a flawed and unsustainable approach (the more migrations
10
- # you'll amass, the slower it'll run and the greater likelihood for issues).
11
- #
12
- # It's strongly recommended that you check this file into your version control system.
13
-
14
- ActiveRecord::Schema.define(version: 20110208155312) do
15
-
16
- create_table "animals", force: :cascade do |t|
17
- t.string "name"
18
- t.string "species"
19
- end
20
-
21
- create_table "articles", force: :cascade do |t|
22
- t.string "title"
23
- t.string "content"
24
- t.string "abstract"
25
- t.string "file_upload"
26
- end
27
-
28
- create_table "authorships", force: :cascade do |t|
29
- t.integer "book_id"
30
- t.integer "person_id"
31
- end
32
-
33
- create_table "banana_versions", force: :cascade do |t|
34
- t.string "item_type", null: false
35
- t.integer "item_id", null: false
36
- t.string "event", null: false
37
- t.string "whodunnit"
38
- t.text "object"
39
- t.datetime "created_at"
40
- end
41
-
42
- add_index "banana_versions", ["item_type", "item_id"], name: "index_banana_versions_on_item_type_and_item_id"
43
-
44
- create_table "bananas", force: :cascade do |t|
45
- t.datetime "created_at"
46
- t.datetime "updated_at"
47
- end
48
-
49
- create_table "books", force: :cascade do |t|
50
- t.string "title"
51
- end
52
-
53
- create_table "boolits", force: :cascade do |t|
54
- t.string "name"
55
- t.boolean "scoped", default: true
56
- end
57
-
58
- create_table "callback_modifiers", force: :cascade do |t|
59
- t.string "some_content"
60
- t.boolean "deleted", default: false
61
- end
62
-
63
- create_table "chapters", force: :cascade do |t|
64
- t.string "name"
65
- end
66
-
67
- create_table "citations", force: :cascade do |t|
68
- t.integer "quotation_id"
69
- end
70
-
71
- create_table "customers", force: :cascade do |t|
72
- t.string "name"
73
- end
74
-
75
- create_table "documents", force: :cascade do |t|
76
- t.string "name"
77
- end
78
-
79
- create_table "editors", force: :cascade do |t|
80
- t.string "name"
81
- end
82
-
83
- create_table "editorships", force: :cascade do |t|
84
- t.integer "book_id"
85
- t.integer "editor_id"
86
- end
87
-
88
- create_table "fluxors", force: :cascade do |t|
89
- t.integer "widget_id"
90
- t.string "name"
91
- end
92
-
93
- create_table "fruits", force: :cascade do |t|
94
- t.string "name"
95
- t.string "color"
96
- end
97
-
98
- create_table "gadgets", force: :cascade do |t|
99
- t.string "name"
100
- t.string "brand"
101
- t.datetime "created_at"
102
- t.datetime "updated_at"
103
- end
104
-
105
- create_table "legacy_widgets", force: :cascade do |t|
106
- t.string "name"
107
- t.integer "version"
108
- end
109
-
110
- create_table "line_items", force: :cascade do |t|
111
- t.integer "order_id"
112
- t.string "product"
113
- end
114
-
115
- create_table "not_on_updates", force: :cascade do |t|
116
- t.datetime "created_at"
117
- t.datetime "updated_at"
118
- end
119
-
120
- create_table "orders", force: :cascade do |t|
121
- t.integer "customer_id"
122
- t.string "order_date"
123
- end
124
-
125
- create_table "paragraphs", force: :cascade do |t|
126
- t.integer "section_id"
127
- t.string "name"
128
- end
129
-
130
- create_table "people", force: :cascade do |t|
131
- t.string "name"
132
- t.string "time_zone"
133
- end
134
-
135
- create_table "post_versions", force: :cascade do |t|
136
- t.string "item_type", null: false
137
- t.integer "item_id", null: false
138
- t.string "event", null: false
139
- t.string "whodunnit"
140
- t.text "object"
141
- t.datetime "created_at"
142
- t.string "ip"
143
- t.string "user_agent"
144
- end
145
-
146
- add_index "post_versions", ["item_type", "item_id"], name: "index_post_versions_on_item_type_and_item_id"
147
-
148
- create_table "post_with_statuses", force: :cascade do |t|
149
- t.integer "status"
150
- end
151
-
152
- create_table "posts", force: :cascade do |t|
153
- t.string "title"
154
- t.string "content"
155
- end
156
-
157
- create_table "quotations", force: :cascade do |t|
158
- t.integer "chapter_id"
159
- end
160
-
161
- create_table "sections", force: :cascade do |t|
162
- t.integer "chapter_id"
163
- t.string "name"
164
- end
165
-
166
- create_table "skippers", force: :cascade do |t|
167
- t.string "name"
168
- t.datetime "another_timestamp"
169
- t.datetime "created_at"
170
- t.datetime "updated_at"
171
- end
172
-
173
- create_table "songs", force: :cascade do |t|
174
- t.integer "length"
175
- end
176
-
177
- create_table "things", force: :cascade do |t|
178
- t.string "name"
179
- end
180
-
181
- create_table "translations", force: :cascade do |t|
182
- t.string "headline"
183
- t.string "content"
184
- t.string "language_code"
185
- t.string "type"
186
- end
187
-
188
- create_table "version_associations", force: :cascade do |t|
189
- t.integer "version_id"
190
- t.string "foreign_key_name", null: false
191
- t.integer "foreign_key_id"
192
- end
193
-
194
- add_index "version_associations", ["foreign_key_name", "foreign_key_id"], name: "index_version_associations_on_foreign_key"
195
- add_index "version_associations", ["version_id"], name: "index_version_associations_on_version_id"
196
-
197
- create_table "versions", force: :cascade do |t|
198
- t.string "item_type", null: false
199
- t.integer "item_id", null: false
200
- t.string "event", null: false
201
- t.string "whodunnit"
202
- t.text "object"
203
- t.text "object_changes"
204
- t.integer "transaction_id"
205
- t.datetime "created_at"
206
- t.integer "answer"
207
- t.string "action"
208
- t.string "question"
209
- t.integer "article_id"
210
- t.string "title"
211
- t.string "ip"
212
- t.string "user_agent"
213
- end
214
-
215
- add_index "versions", ["item_type", "item_id"], name: "index_versions_on_item_type_and_item_id"
216
-
217
- create_table "whatchamajiggers", force: :cascade do |t|
218
- t.string "owner_type"
219
- t.integer "owner_id"
220
- t.string "name"
221
- end
222
-
223
- create_table "widgets", force: :cascade do |t|
224
- t.string "name"
225
- t.text "a_text"
226
- t.integer "an_integer"
227
- t.float "a_float"
228
- t.decimal "a_decimal", precision: 6, scale: 4
229
- t.datetime "a_datetime"
230
- t.time "a_time"
231
- t.date "a_date"
232
- t.boolean "a_boolean"
233
- t.string "sacrificial_column"
234
- t.string "type"
235
- t.datetime "created_at"
236
- t.datetime "updated_at"
237
- end
238
-
239
- create_table "wotsits", force: :cascade do |t|
240
- t.integer "widget_id"
241
- t.string "name"
242
- t.datetime "created_at"
243
- t.datetime "updated_at"
244
- end
245
-
246
- end