[RUBY] Introduction à la migration

Introduction à la migration

Qu'est-ce que la migration?

text La migration est un moyen pratique de modifier en continu le schéma de votre base de données. Étant donné que la migration utilise le DSL de Ruby, vous n'avez pas besoin d'écrire du SQL brut et d'apporter des modifications au schéma indépendamment du type de base de données.

Je vois, lorsque vous ajoutez une table ou lorsque vous ajoutez un attribut à une table Vous devez créer SQL, non?

CREATE TABLE HOGE

Vous pouvez écrire du SQL brut et apporter des modifications à la base de données de cette manière, mais vous n'êtes pas obligé de le faire. Cela ne dépend pas non plus du type de base de données. Je l'ai utilisé d'une manière ou d'une autre, mais c'est incroyable.

Exemple de migration

Voici un exemple d'ajout d'une table appelée produits.

Il contient une colonne de chaîne appelée nom et une colonne de texte appelée description. La clé primaire est implicitement ajoutée avec le nom id. id est la clé primaire par défaut dans le modèle Active Record.

ruby.rb



class CreateProducts < ActiveRecord::Migration[5.0]
  def change
    create_table :products do |t|
      t.string :name
      t.text :description
 
      t.timestamps
    end
  end
end

L'exécution de cette migration générera une table. Vous pouvez également supprimer cette table en la faisant reculer.

Créer une migration

rails generate migration AddPartNumberToProducts part_number:string

L'exécution du code ci-dessus générera un fichier de migration comme celui ci-dessous. Le contenu consiste à ajouter une colonne aux produits.

ruby.rb


class AddPartNumberToProducts < ActiveRecord::Migration[5.0]
  def change
    add_column :products, :part_number, :string
  end
end

Reflété dans DB

Reflète le fichier de migration précédent dans la base de données.

#Courir
rails db:migrate
#retour en arriere
rails db:rollback

Vous pouvez exécuter la migration ou revenir en arrière comme décrit ci-dessus.

En gros, j'ai résumé la migration. J'avais l'habitude de l'utiliser d'une manière ou d'une autre, mais J'ai progressivement compris à quoi ça ressemble.

C'est tout pour aujourd'hui ** 91 jours pour devenir un ingénieur à part entière **

Recommended Posts

Introduction à la migration
Introduction à Ruby 2
Introduction à web3j
Introduction à Micronaut 1 ~ Introduction ~
[Java] Introduction à Java
Introduction à Java
Introduction à Doma
Introduction aux fichiers JAR
Introduction à Ratpack (8) - Session
Introduction à l'arithmétique des bits
Introduction à Ratpack (6) - Promesse
Introduction à PlayFramework 2.7 ① Présentation
Introduction à la mise en page Android
Introduction à la programmation pratique
Introduction à la commande javadoc
Introduction à la commande jar
Introduction à Ratpack (2) -Architecture
Introduction au style lambda
Introduction à la commande java
Introduction au développement de Keycloak
Introduction à la commande javac
Introduction aux modèles de conception (Builder)
Migration de Cobol vers JAVA
Introduction au développement d'applications Android
Introduction à la métabase ~ Construction de l'environnement ~
Introduction à Ratpack (7) --Guice & Spring
(Installation par points) Introduction à Java8_Impression
Introduction aux modèles de conception (composite)
Introduction à Micronaut 2 ~ Test unitaire ~
Introduction à JUnit (note d'étude)
Introduction à Spring Boot ① ~ DI ~
[Java] Introduction à l'expression lambda
Introduction à Apache Beam (2) ~ ParDo ~
Introduction à l'API EHRbase 2-REST
Introduction au prototype de modèles de conception
[Java] Introduction à l'API Stream
Introduction aux modèles de conception (Iterator)
Introduction à Spring Boot, partie 1
Introduction à Ratpack (1) - Qu'est-ce que Ratpack?
Comment restaurer le fichier de migration
à_ ○
Introduction aux modèles de conception (stratégie)
[Introduction aux jeux Janken (comme)] Java
Introduction à Linux Container / Docker (Partie 1)
Introduction à la pratique rapide Chapitre 5
migration du tampon de protocole de 2.x vers 3.x
[Introduction à Java] À propos des expressions lambda
Introduction aux algorithmes avec somme cumulée Java
[Introduction à Java] À propos de l'API Stream
Introduction à la programmation fonctionnelle (Java, Javascript)