[RUBY] Migration des rails

C'est la première fois que je touche à la migration Rails, je vais donc l'écrire brièvement sous forme de mémorandum d'étude.

À propos de la migration

La migration est un moyen pratique et unifié d'apporter des modifications continues à votre schéma de base de données.

Créer un fichier de migration

Préparer le tableau de l'entreprise comme exemple

Nom de colonne Type de données
id integer
name string
description text
created_at datetime
updated_at datetime
$ rails g migration CrateCompany

Active Record affiche automatiquement l'ordre d'exécution de la migration avec l'horodatage du nom de fichier. Le fichier créé est enregistré dans le répertoire db / migrate.

Fichier créé

class CrateCompany < ActiveRecord::Migration[5.2]
	def change
	end
 end

ActiveRecord :: Migration [] contient la version.

Vous pouvez utiliser haut et bas au lieu de changer. Écrivez le contenu lors de la migration dans la méthode up et le contenu lors de la restauration dans la méthode down.


class CrateCompany < ActiveRecord::Migration[5.2]
	def up
	end

	def down
	end
end

Faire des changements

Créez un fichier de migration et tapez «rails db: migrate» pour l'exécuter. Aussi, pour annuler la dernière modification, rails db: rollback

Créer une table

class CrateCompany < ActiveRecord::Migration[5.2]
    def change 
     create_table :companies do |t|
    t.string :name
      t.text :description
      t.timestamps
    end
  end
end

Si vous tapez cette commande, elle créera automatiquement quelque chose comme ci-dessus

$ rails g migration CrateCompany name:string description:text

Changer de table

class ChangeTableCompany < ActiveRecord::Migration[5.2]
    def change 
     change_table :companies do |t|
     t.remove :name
     t.string :root_number
     t.index :root_number
     t.rename :description, :description_note
  end
  end
end

La migration ci-dessus supprime la colonne de nom, crée une colonne de chaîne, numéro_racine, et y ajoute un index. Et enfin, la colonne de description est renommée.

Changer de colonne

change_column :companies, :root_number, :text

Changement de la colonne numéro_racine du nom du modèle en texte.

Notez que change_column ne peut pas être annulé avec la méthode change. La méthode change ne la prend pas en charge. Les définitions de migration prises en charge par change sont

add_column add_foreign_key add_index add_reference add_timestamps change_column_default (en spécifiant: from et: to ne peut pas être omis) change_column_null create_join_table create_table disable_extension drop_join_table drop_table (doit passer un bloc) enable_extension remove_column (le type doit être spécifié) remove_foreign_key (doit spécifier la deuxième table) remove_index remove_reference remove_timestamps rename_column rename_index rename_table

Si vous voulez revenir en arrière, vous pouvez utiliser change_column s'il s'agit d'une méthode vers le haut ou vers le bas.


class ChangeColumnCompany < ActiveRecord::Migration[5.2]
    def up
     change_column :companies, :root_number, :text
    end

    def down
     change_column :companies, :root_number, :string
    end
end

Je ne sais pas encore grand-chose sur la migration, mais je veux l'apprendre.

Recommended Posts

Migration des rails
[Rails] À propos des fichiers de migration
[Rails] Résumé de la commande de migration
Diverses opérations de migration de rails
Comprendre la migration dans les rails
[rails] Fichier de migration NOFILE supprimé
Annuler la migration de Ruby on Rails
[Rails] Supprimer le fichier de migration
[Rails g. Erreur]
Notions de base sur les rails
Rails Examen 1
[Rails] first_or_initialize
rails tutry
À propos des rails 6
Fondation Rails
Mémorandum Rails
tutoriel sur les rails
rails tutry
Vérifier l'état de migration des rails
tutoriel sur les rails
[Rails] concevoir
rails tutry
tutoriel sur les rails
Conseils de rails
méthode des rails
tutoriel sur les rails
Rails Revue 2
Fichier de migration pour ajouter un commentaire à la table Rails
Migration des rails Changements de colonne et ainsi de suite.
Rails CSV Basic
Rails6 jQuery introduit
À propos du routage des rails
Principes de base du routage des rails
Ajout de binding.pry (rails)
Principes de base de la base de données Rails
Restrictions d'accès aux rails
Rails et données de forme
tutoriel rails Chapitre 6
Test du tutoriel sur les rails
Les rails rendent redirect_to
[Rails] Fonction préférée
ActiveAndroid => migration ReActiveAndroid
[Rails] À propos des conventions de dénomination
Principes de base de l'enregistreur de rails
[Rails] Présentation de jquery
Message Flash Rails
Vent arrière sur les rails
tutoriel rails Chapitre 1
Méthode de délégué Rails
[Rails 6] cocoon_ introduction
[Rails] Présentation de Carrierwave
Mémorandum du didacticiel Rails 1
[rails] Définir la validation
Rails Learning jour 3
[Rails] Solution lorsqu'une erreur de migration se produit dans agit-as-taggable-on