class ActiveRecord::ConnectionAdapters::PostgreSQLAdapter
Public Instance Methods
create_table(table_name, options = {}) { |table| ... }
click to toggle source
Provide versioned: true to create a versioned table Note that schema.rb cannot be used with versioned tables
Calls superclass method
# File lib/versioned_record/connection_adapters/postgresql.rb, line 7 def create_table(table_name, options = {}) if options[:versioned] super(table_name, options.merge(id: false)) do |table| table.column :id, :serial table.integer :version, default: 0 table.boolean :is_current_version, default: true yield(table) end add_index(table_name, [:id, :version], unique: true, name: "#{table_name}_versioned_pkey") execute("ALTER TABLE #{table_name} ADD PRIMARY KEY USING INDEX #{table_name}_versioned_pkey") else super end end