aboutsummaryrefslogtreecommitdiffstats
path: root/db
diff options
context:
space:
mode:
authorXinhui2017-11-21 15:27:17 +0100
committerXinhui2017-11-28 12:09:02 +0100
commit8aa230271ec6f0cd578e479c42d95418cb9408c3 (patch)
tree9c3dfe3d3ed3aab6615b9ed86936049299004154 /db
parent6bd0791839353750511ce4a49e6b75a462dfec51 (diff)
downloadchouette-core-8aa230271ec6f0cd578e479c42d95418cb9408c3.tar.bz2
Add gem paper_trail
Diffstat (limited to 'db')
-rw-r--r--db/migrate/20171121142536_create_versions.rb34
1 files changed, 34 insertions, 0 deletions
diff --git a/db/migrate/20171121142536_create_versions.rb b/db/migrate/20171121142536_create_versions.rb
new file mode 100644
index 000000000..ff794f9e1
--- /dev/null
+++ b/db/migrate/20171121142536_create_versions.rb
@@ -0,0 +1,34 @@
+class CreateVersions < ActiveRecord::Migration
+
+ # The largest text column available in all supported RDBMS is
+ # 1024^3 - 1 bytes, roughly one gibibyte. We specify a size
+ # so that MySQL will use `longtext` instead of `text`. Otherwise,
+ # when serializing very large objects, `text` might not be big enough.
+ TEXT_BYTES = 1_073_741_823
+
+ def change
+ create_table :versions do |t|
+ t.string :item_type, :null => false
+ t.integer :item_id, :null => false
+ t.string :event, :null => false
+ t.string :whodunnit
+ t.text :object, :limit => TEXT_BYTES
+
+ # Known issue in MySQL: fractional second precision
+ # -------------------------------------------------
+ #
+ # MySQL timestamp columns do not support fractional seconds unless
+ # defined with "fractional seconds precision". MySQL users should manually
+ # add fractional seconds precision to this migration, specifically, to
+ # the `created_at` column.
+ # (https://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html)
+ #
+ # MySQL users should also upgrade to rails 4.2, which is the first
+ # version of ActiveRecord with support for fractional seconds in MySQL.
+ # (https://github.com/rails/rails/pull/14359)
+ #
+ t.datetime :created_at
+ end
+ add_index :versions, [:item_type, :item_id]
+ end
+end