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.
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
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.
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.
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).
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.
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.
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
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.
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.
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!