[RUBY] [Rails] Comment créer une table, ajouter une colonne et changer le type de colonne

introduction

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. )

Création de modèles et de tableaux

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.

Ajouter une colonne

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.

Changer le type de colonne

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.

finalement

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.

Recommended Posts

[Rails] Comment créer une table, ajouter une colonne et changer le type de colonne
[Rails] Comment changer le nom de colonne de la table
[Ruby on Rails] Comment changer le nom de la colonne
[Rails] Traitement après l'ajout d'une colonne à la table de devise
[rails] Comment créer un modèle partiel
[Rails] Comment introduire le kaminari avec Slim et changer le design
[Rails] J'ai découvert les fichiers de migration! (Ajout d'une colonne au tableau)
[Rails] Comment créer un graphique à l'aide de lazy_high_charts
Comment créer facilement un pull-down avec des rails
[Rails] Comment créer un bouton de partage Twitter
Lorsque vous souhaitez ajouter une colonne de type chaîne avec une longueur limitée avec la commande `rails generate migration`
(Ruby on Rails6) Comment créer un modèle et une table
[Rails] Ajouter une colonne à concevoir
Créer un tableau et ajouter des colonnes
Comment créer une méthode
Comment changer dynamiquement le nom de la colonne acquis par MyBatis
Comment écrire une migration du type Rails datetime au type date
Comment créer un formulaire pour sélectionner une date dans le calendrier
Comment créer une partie d'espace réservé à utiliser dans la clause IN
Je souhaite créer un formulaire pour sélectionner la catégorie [Rails]
Comment ajouter les mêmes index dans un tableau imbriqué
Ajouter une ombre au bouton Swift (et aussi au cercle)
Comment exécuter React et Rails sur le même serveur
Comment créer et lancer un Dockerfile pour Payara Micro
Préparation à la création de l'application Rails
[Rails] Comment ajouter de nouvelles pages
[Rails 6.0, Docker] J'ai essayé de résumer la construction de l'environnement Docker et les commandes nécessaires pour créer un portfolio
Comment ajouter la fonction de suppression
Cliquez sur le bouton [rails] pour créer un mot de passe alphanumérique aléatoire et entrez-le dans le champ de mot de passe
Comment créer un fichier jar et un fichier war à l'aide de la commande jar
[Rails] Comment obtenir l'URL de la source de transition et la rediriger
[Rails 6] Comment créer un écran de saisie de formulaire dynamique à l'aide de cocoon
[Rails] Comment changer le titre de la page du navigateur pour chaque page
[chown] Comment changer le propriétaire d'un fichier ou d'un répertoire
[Java] Comment convertir du type String en type Path et obtenir le chemin
(Ruby on Rails6) Créer une fonction pour modifier le contenu publié
[Rails 5] Comment afficher l'écran de changement de mot de passe lors de l'utilisation de l'appareil
Fichier de migration pour ajouter un commentaire à la table Rails
Comment changer le nom de l'application dans les rails
[Rails] Comment utiliser la méthode de la carte
Comment ajouter un nouveau hachage / tableau
Comment créer un référentiel Maven pour 2020
[Rails] [Note] Quand ajouter = à <%%> et quand pas
Comment trouver les dizaines et les unités
[Swift5] Comment créer un écran de démarrage
Comment créer une requête à l'aide de variables dans GraphQL [Utilisation de Ruby on Rails]
Comment modifier le nombre maximum et maximum de données POST dans Spark
[Rails 6] cocoon_ Ajouter des attributs d'identifiant et de données au formulaire à ajouter
Exécutable serveur avec Spring gradle Comment créer JAR et WAR