Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pengurusan Skema Pangkalan Data dalam Laravel Menggunakan Migrasi: Tutorial Mendalam

Pengurusan Skema Pangkalan Data dalam Laravel Menggunakan Migrasi: Tutorial Mendalam

DDD
DDDasal
2024-09-14 06:16:371169semak imbas

Database Schema Management in Laravel Using Migrations: An In-Depth Tutorial

Penghijrahan Laravel ialah cara terbaik untuk mengurus perubahan skema pangkalan data. Mereka membenarkan anda mengawal versi struktur pangkalan data dan dengan mudah melancarkan semula atau mengubah suai perubahan dari semasa ke semasa. Dalam panduan ini, kami akan meneroka proses mencipta, menjalankan dan melancarkan migrasi dalam Laravel langkah demi langkah, bersama-sama dengan contoh praktikal.

Langkah 1: Sediakan Persekitaran Laravel

Sebelum bermula dengan migrasi, pastikan anda telah memasang Laravel. Anda boleh melakukannya melalui Komposer:

composer create-project --prefer-dist laravel/laravel migration-demo

Kemudian navigasi ke dalam folder projek:

cd migration-demo

Langkah 2: Konfigurasi Pangkalan Data

Untuk mengkonfigurasi pangkalan data, buka fail .env dalam projek Laravel anda dan kemas kini bukti kelayakan pangkalan data:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_username
DB_PASSWORD=your_password

Selepas mengkonfigurasi pangkalan data anda, anda boleh mencipta pangkalan data baharu dalam persekitaran setempat anda jika ia belum wujud.

Langkah 3: Mencipta Migrasi

Anda boleh membuat migrasi baharu menggunakan arahan artisan. Contohnya, untuk membuat migrasi jadual pengguna:

php artisan make:migration create_users_table

Arahan ini menjana fail migrasi dalam pangkalan data/direktori migrasi. Nama fail akan mengandungi cap masa dan kelihatan seperti 2024_09_13_123456_create_users_table.php.

Langkah 4: Mentakrifkan Skema Migrasi

Buka fail migrasi yang dijana. Anda akan menemui dua kaedah: atas() (untuk mentakrifkan penciptaan jadual) dan bawah() (untuk mentakrifkan cara jadual harus digulung semula).

Contoh untuk membuat jadual pengguna:

<?php

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

class CreateUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->id(); // Primary key
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps(); // Created at & Updated at
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('users');
    }
}

Dalam kaedah up(), kami mentakrifkan struktur jadual pengguna. Kaedah down() mentakrifkan cara untuk mengalih keluar jadual sekiranya berlaku rollback (iaitu, menjatuhkan jadual).

Langkah 5: Menjalankan Migrasi

Untuk menjalankan migrasi dan mencipta jadual pengguna dalam pangkalan data anda, gunakan arahan berikut:

php artisan migrate

Arahan ini akan melaksanakan semua migrasi yang belum dijalankan. Anda seharusnya melihat output berikut:

Migrating: 2024_09_13_123456_create_users_table
Migrated:  2024_09_13_123456_create_users_table (0.45 seconds)

Anda boleh mengesahkan bahawa jadual pengguna telah dibuat dalam pangkalan data anda.

Langkah 6: Mengundur Migrasi

Untuk melancarkan semula penghijrahan terbaharu, gunakan arahan berikut:

php artisan migrate:rollback

Ini akan mengalih keluar jadual pengguna atau mana-mana jadual yang ditakrifkan dalam kelompok migrasi terbaharu.

Untuk melancarkan berbilang langkah migrasi, gunakan:

php artisan migrate:rollback --step=2

Ini mengembalikan dua kelompok penghijrahan terakhir.

Langkah 7: Mengubah Suai Jadual Sedia Ada

Jika anda ingin mengubah suai jadual sedia ada (contohnya, menambah lajur), buat migrasi baharu:

php artisan make:migration add_phone_to_users_table --table=users

Ini mewujudkan migrasi untuk mengubah suai jadual pengguna. Anda kemudian boleh menentukan perubahan:

public function up()
{
    Schema::table('users', function (Blueprint $table) {
        $table->string('phone')->nullable(); // Add phone column
    });
}

public function down()
{
    Schema::table('users', function (Blueprint $table) {
        $table->dropColumn('phone'); // Remove phone column
    });
}

Jalankan migrasi untuk menggunakan perubahan:

php artisan migrate

Langkah 8: Menyemai Pangkalan Data

Laravel juga membolehkan anda menyemai pangkalan data dengan data tiruan. Untuk membuat seeder, gunakan:

php artisan make:seeder UsersTableSeeder

Dalam fail seeder yang terletak dalam pangkalan data/seeders/UsersTableSeeder.php, anda boleh menentukan data:

use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;

class UsersTableSeeder extends Seeder
{
    public function run()
    {
        DB::table('users')->insert([
            'name' => 'John Doe',
            'email' => 'john@example.com',
            'password' => Hash::make('password'),
        ]);
    }
}

Kemudian jalankan seeder menggunakan:

php artisan db:seed --class=UsersTableSeeder

Anda juga boleh menyemai pangkalan data semasa penghijrahan dengan memanggil seeder dalam DatabaseSeeder.php.

Langkah 9: Menjalankan Semua Migrasi dan Penyemai

Untuk menetapkan semula pangkalan data dan menjalankan semua migrasi dan pembenih:

php artisan migrate:fresh --seed

Arahan ini akan menggugurkan semua jadual, menjalankan semula semua migrasi dan membenihkan pangkalan data.

Langkah 10: Amalan Terbaik Migrasi

  • Kawalan Versi: Sentiasa lakukan migrasi ke kawalan versi (Git) bersama-sama dengan kod anda.
  • Penghijrahan Kecil: Pecahkan migrasi besar kepada yang lebih kecil untuk memudahkan pengembalian dan penyahpepijatan.
  • Elakkan Mengubah Migrasi Sedia Ada: Jika anda telah menjalankan migrasi dalam pengeluaran, buat yang baharu untuk mengubah suai pangkalan data dan bukannya menukar migrasi sedia ada.

Ringkasan Contoh Tangan

  1. Buat projek Laravel baharu.
  2. Konfigurasikan fail .env untuk sambungan pangkalan data.
  3. Buat migrasi untuk jadual pengguna.
  4. Tentukan skema jadual dalam kaedah atas().
  5. Jalankan migrasi dengan php artisan migrate.
  6. Ubah suai jadual pengguna dengan menambahkan lajur telefon melalui penghijrahan lain.
  7. Kembali atau jalankan semula migrasi mengikut keperluan.
  8. Sediakan pangkalan data dengan data sampel.
  9. Urus keadaan pangkalan data menggunakan migrasi dengan cekap.

Dengan mengikuti langkah ini, anda boleh mengurus perubahan skema pangkalan data dengan mudah dalam Laravel menggunakan migrasi. Penghijrahan laravel ialah bahagian penting dalam memastikan versi struktur pangkalan data dikawal dan disegerakkan merentas persekitaran yang berbeza seperti pembangunan, pementasan dan pengeluaran.

Atas ialah kandungan terperinci Pengurusan Skema Pangkalan Data dalam Laravel Menggunakan Migrasi: Tutorial Mendalam. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Pertanyaan XOR tentang SubarrayArtikel seterusnya:Pertanyaan XOR tentang Subarray