Lorsque je créais un portfolio et que je voulais ajouter une colonne plus tard, ou lorsque je voulais changer le type de colonne qui était défini au début, je ne savais pas quoi faire, donc même si vous êtes débutant, même si vous êtes débutant Je l'ai résumé pour une compréhension facile. (Au début, je pensais que je devrais ajouter ou modifier directement le fichier de migration existant, mais ce n'est pas correct, je vais donc créer un autre fichier de migration et décrire comment l'ajouter ou le modifier. )
Lorsque vous créez un modèle avec la commande suivante, un fichier de migration pour créer la table dont ce modèle est en charge est automatiquement créé avec le modèle.
$ rails g model [Nom du modèle] [Nom de colonne]:[Type de colonne]
Par exemple, si vous souhaitez créer un modèle utilisateur, spécifiez Utilisateur pour [Nom du modèle] et nom: chaîne email: chaîne pour [Nom de colonne: Type de colonne]. La commande ressemble à ceci:
$ rails g model User name:string email:string
Lorsque vous exécutez la commande, le fichier de migration suivant est créé.
db/migrate/XXXXXXXXXXXXXX_create_users.rb
class CreateUsers < ActiveRecord::Migration[6.0]
def change
create_table :users do |t|
t.string :name
t.string :email
t.timestamps
end
end
end
Confirmez que le fichier ci-dessus a été généré et exécutez la migration avec la commande suivante.
$ rails db:migrate
La table Users est maintenant créée.
Si vous souhaitez ajouter une colonne à une table déjà créée, créez une nouvelle migration et ajoutez-la au lieu d'écrire directement dans le fichier de migration existant.
Pour créer un fichier de migration afin d'ajouter une colonne, utilisez la commande suivante.
$ rails g migration Add[Nom de colonne]To[nom de la table] [Nom de colonne]:[Type de colonne]
Par exemple, si vous souhaitez ajouter une colonne d'introduction (type de texte) à une table d'utilisateurs existante, utilisez ce qui suit.
$ rails g migration AddIntroductionToUsers introduction:text
Lorsque vous exécutez la commande, le fichier de migration suivant est créé.
db/migrate/XXXXXXXXXXXXXX_add_introduction_to_users.rb
class AddIntroductionToUsers < ActiveRecord::Migration[6.0]
def change
add_column :users, :introduction, :text
end
end
Confirmez que le fichier ci-dessus a été généré et exécutez la migration avec la commande suivante.
$ rails db:migrate
La colonne d'introduction (type de texte) est maintenant ajoutée à la table des utilisateurs.
Si vous souhaitez modifier le type de colonne d'une table existante, vous pouvez le modifier dans une procédure similaire à l'ajout d'une colonne.
Pour créer un fichier de migration afin de modifier le type de colonne, utilisez la commande suivante.
$ rails g migration change_data_[Nom de colonne]_to_[nom de la table]
Par exemple, si vous souhaitez modifier le type de la colonne de matériaux de la table de productions existante, utilisez ce qui suit.
$ rails g migration change_data_material_to_productions
Lorsque vous exécutez la commande, un fichier de migration est créé, ajoutez donc le type de colonne que vous souhaitez modifier. Par exemple, si vous souhaitez modifier le type de la colonne de matériaux de la table de productions en type entier, ajoutez comme suit.
db/migrate/XXXXXXXXXXXXXX_change_data_material_to_productions.rb
class ChangeDataMaterialToProductions < ActiveRecord::Migration[6.0]
<!-- *****Ajoutez ce qui suit***** -->
def change
change_column :productions, :material, :integer
end
<!-- *****Ajouter plus de***** -->
end
Une fois l'ajout terminé, exécutez la migration avec la commande suivante.
$ rails db:migrate
Le type de la colonne de matériau dans la table de productions est maintenant changé en type entier.
Cet article est le premier à résumer dans Qiita ce que les débutants ont appris lors de la création d'un portfolio.
S'il y a des erreurs dans le contenu, je vous serais reconnaissant de bien vouloir commenter.