Bien que la réponse acceptée soit excellente, je voulais ajouter ici une réponse qui, espérons-le, mieux traiter la question des affiches originales, partie 2, pour les non-experts comme moi.
- Comment créer une migration pour remplacer le type de cette colonne
génération d'une migration d'échafaudage
Vous pouvez générer une migration pour contenir votre modification en tapant dans votre console (remplacez simplement le table
pour le nom de vos tables et column
pour votre nom de colonne)
rails generate migration change_table_column
Cela générera une migration squelette à l'intérieur de votre dossier application / db / migrate / Rails. Cette migration est un espace réservé pour votre code de migration.
Par exemple, je souhaite créer une migration pour changer le type d'une colonne de string
à text
, dans une table appelée TodoItems:
class ChangeTodoItemsDescription < ActiveRecord::Migration
def change
# enter code here
change_column :todo_items, :description, :text
end
end
Lancer votre migration
Une fois que vous avez entré le code pour changer la colonne, exécutez simplement:
rake db:migrate
Pour appliquer votre migration. Si vous faites une erreur, vous pouvez toujours annuler la modification avec:
rake db:rollack
Méthodes haut et bas
Les références Up
et Down
méthodes de réponse acceptées , au lieu de la Change
méthode la plus récente . Depuis les rails 3.2 de l' ancien style , les méthodes Up and Down présentent quelques avantages par rapport à la nouvelle méthode Change. «Haut et bas» éviter ActiveRecord::IrreversibleMigration exception
. Depuis la sortie de Rails 4, vous pouvez utiliser reversible
pour éviter cette erreur:
class ChangeProductsPrice < ActiveRecord::Migration
def change
reversible do |dir|
change_table :products do |t|
dir.up { t.change :price, :string }
dir.down { t.change :price, :integer }
end
end
end
end
Profitez de Rails :)