Quelle est la syntaxe de suppression d’une colonne de table de firebase database via une migration Rails?
remove_column :table_name, :column_name
Par exemple:
remove_column :users, :hobby
supprimerait la colonne de passe-temps de la table des utilisateurs.
Pour les anciennes versions de Rails
ruby script/generate migration RemoveFieldNameFromTableName field_name:datatype
Pour les rails 3 et plus
rails generate migration RemoveFieldNameFromTableName field_name:datatype
Rails 4 a été mis à jour. Par conséquent, la méthode de modification peut être utilisée dans la migration pour supprimer une colonne et la migration sera annulée avec succès. Veuillez lire l’avertissement suivant pour les applications Rails 3:
Rails 3 Avertissement
Veuillez noter que lorsque vous utilisez cette commande:
rails generate migration RemoveFieldNameFromTableName field_name:datatype
La migration générée ressemblera à ceci:
def up remove_column :table_name, :field_name end def down add_column :table_name, :field_name, :datatype end
Veillez à ne pas utiliser la méthode change lorsque vous supprimez des colonnes d’une table de firebase database (exemple de ce que vous ne voulez pas dans le fichier de migration dans les applications Rails 3):
def change remove_column :table_name, :field_name end
La méthode de modification de Rails 3 n’est pas intelligente en ce qui concerne remove_column. Vous ne pourrez donc pas annuler cette migration.
Dans une application rails4, il est également possible d’utiliser la méthode de modification pour supprimer des colonnes. Le troisième paramètre est data_type et, en option, vous pouvez donner des options. C’est un peu caché dans la section ‘Transformations disponibles’ de la documentation .
class RemoveFieldFromTableName < ActiveRecord::Migration def change remove_column :table_name, :field_name, :data_type, {} end end
Il y a deux bonnes façons de le faire:
Vous pouvez simplement utiliser remove_column, comme ceci:
remove_column :users, :first_name
Cela ne pose aucun problème si vous ne devez modifier que votre schéma.
Vous pouvez également le faire en utilisant un bloc change_table, comme ceci:
change_table :users do |t| t.remove :first_name end
Je préfère cela car je le trouve plus lisible, et vous pouvez apporter plusieurs modifications à la fois.
Voici la liste complète des méthodes change_table sockets en charge:
http://apidock.com/rails/ActiveRecord/ConnectionAdapters/SchemaStatements/change_table
dans les rails 5, vous pouvez utiliser cette commande dans le terminal:
rails generate migration remove_COLUMNNAME_from_TABLENAME COLUMNNAME:DATATYPE
par exemple pour supprimer la colonne access_level (ssortingng) des utilisateurs de la table:
rails generate migration remove_access_level_from_users access_level:ssortingng
puis lancez:
rake db:migrate
rails g migration RemoveXColumnFromY column_name:data_type
X = nom de la colonne
Y = nom de la table
MODIFIER
Changé RemoveXColumnToY
à RemoveXColumnFromY
selon les commentaires – fournit plus de clarté sur ce que la migration est en train de faire.
Supprimer les colonnes pour l’application RAILS 5
rails g migration RemoveFrom [columnName:type]
La commande ci-dessus génère un fichier de migration dans db/migrate
répertoire db/migrate
. Snippet Blick est l’un des exemples de colonnes supprimées de la table générées par le générateur Rails.
class RemoveAgeFromUsers < ActiveRecord::Migration def up remove_column :users, :age end def down add_column :users, :age, :integer end end
J'ai également créé un guide de référence rapide pour Rails, disponible ici .
remove_column :table_name, :column_name
( De la documentation )
Pour supprimer la colonne de la table, vous devez exécuter la migration suivante:
rails g migration remove_column_name_from_table_name column_name:data_type
Ensuite, exécutez la commande:
rake db:migrate
Donnez ci-dessous la commande, il appenda le fichier de migration seul
rails g migration RemoveColumnFromModel
Après avoir exécuté la commande ci-dessus, vous pouvez vérifier le fichier de migration. Le code remove_column doit y être ajouté seul
Puis migrez la firebase database
rake db:migrate
Pour supprimer la colonne de la table en 3 étapes faciles comme suit:
rails g migration remove_column_from_table_name
après avoir exécuté cette commande dans le terminal, un fichier créé avec ce nom et cet horodatage (remove_column from_table_name).
Ensuite, allez dans ce fichier.
à l’intérieur du fichier, vous devez écrire
remove_column :table_name, :column_name
Enfin aller à la console et ensuite faire
rake db:migrate
remove_column
dans la méthode change
vous aidera à supprimer la colonne de la table.
class RemoveColumn < ActiveRecord::Migration def change remove_column :table_name, :column_name, :data_type end end
Allez sur ce lien pour la référence complète: http://guides.rubyonrails.org/active_record_migrations.html
Générez une migration pour supprimer une colonne de sorte que, si elle est migrée ( rake db:migrate
), elle doit supprimer la colonne . Et il devrait append une colonne si cette migration est annulée ( rake db:rollback
).
La syntaxe:
remove_column: nom_table,: nom_colonne
Supprime la colonne, mais ne parvient pas à append la colonne à la restauration.
Exemple:
remove_column :users, :last_name
Notez le nom de la table pluralize: users
La syntaxe:
remove_column: nom_table,: nom_colonne,: type
Supprime la colonne, ajoute également la colonne si la migration est annulée.
Exemple:
remove_column :users, :last_name, :ssortingng
Heureux codage!
Par
remove_column :table_name, :column_name
dans un fichier de migration
Vous pouvez supprimer une colonne directement dans une console de rails en tapant:
ActiveRecord::Base.remove_column :table_name, :column_name