Files
x-stake/db/migrate/20210817233439_create_versions.rb
João Geonizeli a0ddc6cd2e add paper trail
2021-08-17 20:53:22 -03:00

24 lines
844 B
Ruby

# frozen_string_literal: true
# This migration creates the `versions` table, the only schema PT requires.
# All other migrations PT provides are optional.
class CreateVersions < ActiveRecord::Migration[6.1]
# 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.bigint(:item_id, null: false)
t.string(:event, null: false)
t.string(:whodunnit)
t.text(:object, limit: TEXT_BYTES)
t.datetime(:created_at)
end
add_index(:versions, [:item_type, :item_id])
end
end