Nejdříve přidání a odebrání pole, toto jsou jednořádkové příkazy v self.up
a self.down migrace
. Aby bylo jasné co píšu, tak se jedná o přídání nového sloupce s názvem poradi
do tabulky produkty
. Sloupec je číselného typu, tedy integer
(:integer
).
def self.up add_column :produkty, :poradi, :integer end def self.down remove_column :produkty, :poradi end
Nově přidaný sloupec má sloužit jako pořadové čislo. Určuje tak vzájemné pořadí záznamů a nemá žádný další význam.
class AddPoradiToProdukty < ActiveRecord::Migration def self.up add_column :produkty, :poradi, :integer add_index :produkty, :poradi, :unique => true counter = 0 Produkt.find(:all).each { |produkt| produkt.poradi = counter produkt.save counter += 1 } end def self.down remove_index :produkty, :poradi remove_column :produkty, :poradi end end