Odpowiedz

9

Należy wykonać instrukcję SQL.

statement = "ALTER TABLE `users` CHANGE `id` `id` SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT" 
ActiveRecord::Base.connection.execute(statement) 

można ręcznie wejście w migracji

Uwaga to jest tylko przykład. Ostateczna składnia instrukcji SQL zależy od bazy danych.

+1

Czy mam rację przyjmując, że według Railsa nie można tego zrobić bez bezpośredniego wykonywania instrukcji SQL? Spodziewałbym się czegoś takiego: 't.integer: auto_i,: auto_increment => true' do pracy (ale tak nie jest). – kingjeffrey

+3

yes Rails nie zapewnia: słowa kluczowego auto_increment w migracji – user386660

+0

A jeśli chcesz wszystkie słowa kluczowe lub inne dobre rzeczy w Railsach. "rubymine IDE for ROR" byłoby tak przydatne. Używam przez ostatnie 6 miesięcy. – user386660