Répondre

9

Vous devez exécuter une instruction SQL.

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

vous pouvez entrée manuellement dans votre migration

Notez que cette juste un exemple. La syntaxe finale de l'instruction SQL dépend de la base de données.

+1

Ai-je raison de supposer par votre réponse que Rails ne fournit pas un moyen de le faire sans l'exécution directe d'une instruction SQL? Je m'attendrais à quelque chose comme: 't.integer: auto_i,: auto_increment => true' pour fonctionner (mais ce n'est pas le cas). – kingjeffrey

+3

oui Rails ne fournit pas: mot-clé auto_increment dans les migrations – user386660

+0

Et si vous voulez tous les mots-clés ou autres bonnes choses dans Rails alors. "Rubymine IDE pour ROR" serait très utile. J'utilise depuis 6 mois. – user386660