Właśnie natrafiłem na dość dziwny problem, którego nie mogę rozkminić. Plik migracji wygląda następująco:
[code]class CreatePermissions < ActiveRecord::Migration
def self.up
create_table :permissions do |t|
t.string :name=>‘name’, :size=>64, :null=>false
t.integer :name=>‘value’, :size=>2, :null=>false
end
end
def self.down
drop_table :permissions
end
end[/code]
Jednak jej dodanie powoduje dodanie do schema.rb tego:
create_table "permissions", :force => true do |t|
end
Co daje tabelę wyłącznie z kolumną id.
Pytanie skąd on więc bierze, to co on bierze do tabeli permissions, bo na pewno nie z pliku migracji. Nazwa migracji jest na bank okej, bo została stworzona przy generowaniu modelu a version w schema.rb i tabeli schema_migrations zgadzają się z plikiem. Pytanie, dlaczego się nie zgadza z jego treścią. Próbowałem rake;iem przywracać do poprzedniej wersji i znów startować z migracją, jak i ręcznie wyjebywać ja z scheam.rb i schema_migrations, ale nie przynosi to żadnych skutków - efekt jest cały czas taki sam, tworzy tabele tylko z ID.
Niby mógłbym teraz stworzyć migrację dodającą te dwie kolumny do permissions, ale przecież nie o to chodzi, bo to jest bazowy układ tabeli na starcie a nie wprowadzane zmiany. Jak to rozwikłać?
[quote=Piotr Misiurek]Właśnie natrafiłem na dość dziwny problem, którego nie mogę rozkminić. Plik migracji wygląda następująco:
class CreatePermissions < ActiveRecord::Migration
def self.up
create_table :permissions do |t|
t.string :name=>'name', :size=>64, :null=>false
t.integer :name=>'value', :size=>2, :null=>false
end
end
Co daje tabelę wyłącznie z kolumną id.[/quote]