Je dois supprimer quelques colonnes de mon modèle Rails que j'ai déjà créé et avoir des entrées de ligne dans ce modèle. Comment faire? Des liens contenant des détails pour modifier le schéma dans Rails? J'utilise Rails version 3.
Pour supprimer une colonne de base de données, vous devez générer une migration:
script/Rails g migration RemoveColumns
Ensuite, dans la méthode de classe self.up, supprimez vos colonnes:
def self.up
remove_column :table_name, :column_name
end
Vous pouvez également les ajouter à nouveau dans la méthode de classe self.down:
def self.down
add_column :table_name, :column_name, :type
end
Le Rails Guide pour cela va plus en détail.
Si vous connaissez les colonnes que vous souhaitez supprimer, vous pouvez utiliser la convention: Remove..From .. pour nommer vos migrations. De plus, vous pouvez inclure les noms de colonne lors de l'exécution de la commande de migration.
La forme de la commande:
Rails g migration Remove..From.. col1:type col2:type col3:type
Par exemple:
Rails g migration RemoveProjectIDFromProjects project_id:string
génère le fichier de migration suivant:
class RemoveProjectIdFromProjects < ActiveRecord::Migration
def self.up
remove_column :projects, :project_id
end
def self.down
add_column :projects, :project_id, :string
end
end
Via l'alternative de commande comme Add
, changez seulement Add
en Remove
:
Seule colonne:
Rails g migration RemoveColumnFromTable column:type
Colonnes multiples:
Rails g migration RemoveColumn1AndColumn2FromTable column1:type colummn2:type