Maison > Article > développement back-end > En savoir plus sur la migration de bases de données dans Laravel 5
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
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
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
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('articles', function(Blueprint $table) { $table->increments('id'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::drop('articles'); } }
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('articles', function(Blueprint $table) { $table->increments('id'); $table->string('title'); $table->text('body'); $table->timestamp('published_at'); $table->timestamps(); }); }
Exécuter la migration :
php artisan migrate
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
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() { // } }
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='articles'
Maintenant, il y a le code initial dans la méthode up.
public function up() { Schema::table('articles', function(Blueprint $table) { // }); }
Ajouter le code de modification des données réelles :
public function up() { Schema::table('articles', function(Blueprint $table) { $table->text('excerpt')->nullable(); }); } public function down() { Schema::table('articles', function(Blueprint $table) { $table->dropColumn('excerpt'); }); }
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
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!