[RUBY] Si vous souhaitez modifier les colonnes de la base de données, etc.

Si vous souhaitez modifier la base de données db: migrated

Je voulais modifier la base de données tout en apprenant le développement d'équipe dans une école de programmation. Je n'ai pas appris les détails, alors je vais le résumer pour mémoire.

J'espère que cela sera utile pour ceux qui ne sont pas familiarisés avec les opérations de bases de données et ceux qui en apprennent davantage sur les bases de données à l'avenir.

Environnement de développement

DB: MySQL Rails: 5.2.4.3

Commencez par vérifier la base de données (table) que vous souhaitez modifier.

Terminal


% rails db:migrate:status

Ensuite, je pense que les tables sortiront comme ça (le nombre et les noms des tables qui sortiront seront différents)

Terminal


Status   Migration ID    Migration Name
--------------------------------------------------
   up     20200823051138  Devise create ----s
   up     20200824122031  Create -------s
   up     20200824122659  Add ancestry to ------s
   up     20200824123715  Create -----s
   up     20200829083145  Create -----s
   up     20200906141656  Create -----s Je souhaite modifier ce tableau cette fois
   up     20200907114227  Create -----s
  down    20200927061950  Create -----s
  down    20200927065357  Create -----s
※----Est le nom de la table que vous avez créé

Faites attention ici.

Pour corriger la migration, l'état doit être down.

Ensuite, faisons tomber la base de données (table) que vous souhaitez modifier

Pour le faire tomber, exécutez une commande comme celle-ci dans votre terminal

Terminal


% rails db:rollback

Vérifions à nouveau le statut

Terminal


% rails db:migrate:status

Terminal


Status   Migration ID    Migration Name
--------------------------------------------------
   up     20200823051138  Devise create ----s
   up     20200824122031  Create -------s
   up     20200824122659  Add ancestry to ------s
   up     20200824123715  Create -----s
   up     20200829083145  Create -----s
   up     20200906141656  Create -----s Je souhaite modifier ce tableau cette fois
  down    20200907114227  Create -----s
  down    20200927061950  Create -----s
  down    20200927065357  Create -----s
※----Est le nom de la table que vous avez créé

cette?

Un seul bas est devenu bas.

En effet, la commande de restauration ne peut être désactivée qu’une par une.

Alors essayons à nouveau.

Terminal


% rails db:rollback

Vérifions à nouveau le statut

Terminal


% rails db:migrate:status

Terminal


Status   Migration ID    Migration Name
--------------------------------------------------
   up     20200823051138  Devise create ----s
   up     20200824122031  Create -------s
   up     20200824122659  Add ancestry to ------s
   up     20200824123715  Create -----s
   up     20200829083145  Create -----s
  down    20200906141656  Create -----s Je souhaite modifier ce tableau cette fois
  down    20200907114227  Create -----s
  down    20200927061950  Create -----s
  down    20200927065357  Create -----s
※----Est le nom de la table que vous avez créé

Cette fois, j'ai pu abattre la table cible en toute sécurité.

Une fois la correction terminée

Cette fois, je voulais corriger le nom de la colonne, j'ai donc changé le nom de la colonne dans le fichier de migration après cela.

finalement

Terminal


% rails db:migrate

Vérifions à nouveau le statut

Terminal


% rails db:migrate:status

Terminal


Status   Migration ID    Migration Name
--------------------------------------------------
   up     20200823051138  Devise create ----s
   up     20200824122031  Create -------s
   up     20200824122659  Add ancestry to ------s
   up     20200824123715  Create -----s
   up     20200829083145  Create -----s
   up     20200906141656  Create -----s Table modifiée
   up     20200907114227  Create -----s
   up     20200927061950  Create -----s
   up    20200927065357  Create -----s
※----Est le nom de la table que vous avez créé

Pour la commande rails db: migrate, remplacez toutes les tables down par up.

db: migrer est tout à la fois Vous ne pouvez descendre que db: rollback un par un.

Si vous voulez tout revenir en arrière en même temps

Je vais également présenter une méthode qui peut être effectuée collectivement lorsque vous devez revenir plusieurs fois en arrière comme cette fois

Terminal


% rails db:rollback STEP=2

Une fois que vous vous êtes habitué à la commande rollback, utilisez l'option STEP de manière positive pour améliorer votre maniabilité.

Recommended Posts

Si vous souhaitez modifier les colonnes de la base de données, etc.
Si vous souhaitez séparer le traitement Spring Boot + Thymeleaf
Si vous souhaitez utiliser Mockito avec Kotlin, utilisez mockito-kotlin
Si vous souhaitez étudier la programmation à l'université, allez en Australie
[# 3 Java] Lisez ceci si vous voulez étudier Java! ~ Sélectionné avec soin ~
Si vous souhaitez inclure la classe parente dans @builder de Lombok
Si vous souhaitez modifier l'environnement de développement Java d'Eclipse
Lorsque vous avez introduit la devise mais que vous souhaitez ajouter plus de colonnes
Si vous souhaitez utiliser Oracle JDK 11 à partir de septembre (ajoutez Amazon Corretto)
Si vous osez comparer Integer avec "==" ...
Commandes de base de Rails que vous souhaitez apprendre
Si vous souhaitez incorporer dynamiquement des valeurs et ajouter du texte aux valeurs d'attribut dans Thymeleaf 3
Si vous voulez créer un fichier zip avec Ruby, c'est rubyzip.
Si vous souhaitez satisfaire la couverture de test des méthodes privées dans JUnit
Si vous utilisez Android Room et que vous souhaitez modifier la définition de colonne
Lorsque vous souhaitez lier InputStream dans JDBI3
Lorsque vous souhaitez utiliser la méthode à l'extérieur
Que faire si vous transmettez des informations incorrectes
[Ruby] Lorsque vous souhaitez remplacer plusieurs caractères
[rails] Option After utile lorsque vous souhaitez modifier l'ordre des colonnes DB
Que faire si vous créez accidentellement un modèle
Lorsque vous souhaitez remplacer dynamiquement l'annotation dans Java 8
Si vous souhaitez transformer une application Java en une image Docker, il est pratique d'utiliser jib.