Pusta migracja

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]

t.string :name=>'name', :size=>64, :null=>false t.integer :name=>'value', :size=>2, :null=>false
???

Jakim poleceniem to generowales?

Polecam:
http://guides.rails.info/migrations.html
http://apidock.com/rails/ActiveRecord/ConnectionAdapters/SchemaStatements/change_table

To jest bład, racja, ale nie on powoduje tą sytuację, bo:

  1. w poprzednich migracjach też występował
  2. po poprawce nadal jest to samo

Plik wygenerowany podczas tworzenie modelu:

script/generate model permission

A wrzucany:

rake db:migrate

Generuje model:

./script/generate model Permission

Nastepnie edytuje plik migracji:

[code=ruby]class CreatePermissions < ActiveRecord::Migration
def self.up
create_table :permissions do |t|
t.column :name, :string, :limit => 62, :null => false
t.column :value, :integer, :limit => 2, :null => false
end
end

def self.down
drop_table :permissions
end
end[/code]

Albo opcja z sexy migrations:

./script/generate model Permission name:string value:integer

Edycja pliku migracji:

[code=ruby]class CreatePermissions < ActiveRecord::Migration
def self.up
create_table :permissions do |t|
t.string :name, :limit => 62
t.integer :value, :limit => 2

  t.timestamps
end

end

def self.down
drop_table :permissions
end
end[/code]

Dzięki za pomoc. Dopiero po tygodniu zauważyłem co za byka strzeliłem