En savoir plus sur la migration de bases de données dans Laravel 5

不言
Libérer: 2023-04-01 06:56:01
original
1267 Les gens l'ont consulté

Cet article vous présente les migrations de bases de données, l'une des fonctions les plus puissantes du framework Laravel5. Cet article présente en détail les étapes et les méthodes de migration de bases de données. Il est très pratique et les amis dans le besoin peuvent s'y référer.

Les migrations de bases de données sont l'une des fonctionnalités les plus puissantes de Laravel. La migration de base de données peut être comprise comme un contrôleur de version pour la base de données.

Contient deux fichiers de migration dans le répertoire database/migrations, un pour créer la table utilisateur et un pour la réinitialisation du mot de passe utilisateur.

Dans le fichier de migration, la méthode up est utilisée pour créer la table de données et la méthode down est utilisée pour revenir en arrière, c'est-à-dire supprimer la table de données.

Exécuter la migration de la base de données

php artisan migrate
#输出
Migration table created successfully.
Migrated: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_100000_create_password_resets_table
Copier après la connexion

En regardant la base de données mysql, vous pouvez voir que trois tables ont été générées. La table migratoins est la table des enregistrements de migration, des utilisateurs et des pasword_resets.

S'il y a un problème avec la conception, effectuez une restauration de la base de données

php artisan migrate:rollback
#输出
Rolled back: 2014_10_12_100000_create_password_resets_table
Rolled back: 2014_10_12_000000_create_users_table
Copier après la connexion

Affichez à nouveau la base de données mysql, seule la table des migrations reste et les utilisateurs password_resets ont été supprimés.

Modifiez le fichier de migration et effectuez à nouveau la migration.

Nouvelle migration

php artisan make:migration create_article_table --create='articles'
#输出
Created Migration: 2015_03_28_050138_create_article_table
Copier après la connexion

Un nouveau fichier est généré sous base de données/migrations.

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateArticleTable extends Migration {

 /**
 * Run the migrations.
 *
 * @return void
 */
 public function up()
 {
 Schema::create(&#39;articles&#39;, function(Blueprint $table)
 {
  $table->increments(&#39;id&#39;);
  $table->timestamps();
 });
 }

 /**
 * Reverse the migrations.
 *
 * @return void
 */
 public function down()
 {
 Schema::drop(&#39;articles&#39;);
 }

}
Copier après la connexion

La colonne id est automatiquement ajoutée et s'agrandit automatiquement timestamps() générera automatiquement deux colonnes de temps : Create_at et Updated_at. On ajoute quelques champs :

 public function up()
 {
 Schema::create(&#39;articles&#39;, function(Blueprint $table)
 {
  $table->increments(&#39;id&#39;);
      $table->string(&#39;title&#39;);
      $table->text(&#39;body&#39;);
      $table->timestamp(&#39;published_at&#39;);
  $table->timestamps();
 });
 }
Copier après la connexion

Exécuter la migration :

php artisan migrate
Copier après la connexion

Il y a maintenant de nouvelles données Tableau.

Supposons que nous devions ajouter un nouveau champ, vous pouvez revenir en arrière, puis modifier le fichier de migration et effectuer à nouveau la migration, ou vous pouvez créer directement un nouveau fichier de migration

php artisan make:migration add_excerpt_to_articels_table
Copier après la connexion

Afficher le nouveau Le fichier de migration généré

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class AddExcerptToArticelsTable extends Migration {

 /**
 * Run the migrations.
 *
 * @return void
 */
 public function up()
 {
 //
 }

 /**
 * Reverse the migrations.
 *
 * @return void
 */
 public function down()
 {
 //
 }

}
Copier après la connexion

n'a que des méthodes de haut en bas vides. Nous pouvons ajouter le code manuellement ou laisser Laravel générer le code de base pour nous. Supprimez ce fichier, régénérez le fichier de migration et faites attention à l'ajout de paramètres :

php artisan make:migration add_excerpt_to_articels_table --table=&#39;articles&#39;
Copier après la connexion

Maintenant, il y a le code initial dans la méthode up.

 public function up()
 {
 Schema::table(&#39;articles&#39;, function(Blueprint $table)
 {
  //
 });
 }
Copier après la connexion

Ajouter le code de modification des données réelles :

 public function up()
 {
 Schema::table(&#39;articles&#39;, function(Blueprint $table)
 {
  $table->text(&#39;excerpt&#39;)->nullable();
 });
 }
 
 public function down()
 {
 Schema::table(&#39;articles&#39;, function(Blueprint $table)
 {
  $table->dropColumn(&#39;excerpt&#39;);
 });
 }
Copier après la connexion

nullable ( ) indique que le champ peut également être vide.

Exécutez à nouveau la migration et vérifiez la base de données.

Si nous, juste pour nous amuser, faisons un rollback

php artisan migrate:rollback
Copier après la connexion

la colonne d'extraits a disparu.

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Analyse des sous-vues et réutilisation des formulaires du framework Laravel5

Pages et formulaires de Laravel 4 Verify

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!