Lumen框架是一個(gè)輕量級(jí)的PHP框架,用于構(gòu)建RESTful API和微服務(wù)。它的數(shù)據(jù)庫(kù)遷移操作類(lèi)似于Laravel框架,但有一些不同之處。以下是在Lumen中進(jìn)行數(shù)據(jù)庫(kù)遷移操作的步驟:
安裝Lumen框架:
使用Composer創(chuàng)建一個(gè)新的Lumen項(xiàng)目:
composer create-project --prefer-dist laravel/lumen lumen-app
配置數(shù)據(jù)庫(kù)連接:
在.env
文件中配置數(shù)據(jù)庫(kù)連接信息:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_database_username
DB_PASSWORD=your_database_password
啟用Eloquent ORM和數(shù)據(jù)庫(kù)門(mén)面:
在bootstrap/app.php
文件中取消以下行的注釋?zhuān)?/p>
$app->withEloquent();
$app->withFacades();
安裝數(shù)據(jù)庫(kù)遷移組件:
在composer.json
文件中添加以下內(nèi)容:
"require": {
"illuminate/database": "^8.0"
}
然后運(yùn)行composer update
。
創(chuàng)建遷移文件:
使用Artisan命令創(chuàng)建一個(gè)新的遷移文件:
php artisan make:migration create_users_table --create=users
這將在database/migrations
目錄下生成一個(gè)新的遷移文件。
編寫(xiě)遷移文件:
打開(kāi)生成的遷移文件,編寫(xiě)表結(jié)構(gòu):
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUsersTable extends Migration
{
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('users');
}
}
運(yùn)行遷移:
使用Artisan命令運(yùn)行遷移:
php artisan migrate
這將創(chuàng)建users
表。
回滾遷移:
如果需要回滾遷移,可以使用以下命令:
php artisan migrate:rollback
創(chuàng)建數(shù)據(jù)填充文件:
使用Artisan命令創(chuàng)建一個(gè)新的數(shù)據(jù)填充文件:
php artisan make:seeder UsersTableSeeder
這將在database/seeds
目錄下生成一個(gè)新的數(shù)據(jù)填充文件。
編寫(xiě)數(shù)據(jù)填充文件:
打開(kāi)生成的數(shù)據(jù)填充文件,編寫(xiě)填充數(shù)據(jù):
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class UsersTableSeeder extends Seeder
{
public function run()
{
DB::table('users')->insert([
'name' => 'John Doe',
'email' => 'john@example.com',
'password' => bcrypt('password'),
]);
}
}
運(yùn)行數(shù)據(jù)填充:
使用Artisan命令運(yùn)行數(shù)據(jù)填充:
php artisan db:seed --class=UsersTableSeeder
現(xiàn)在,你已經(jīng)完成了Lumen框架的數(shù)據(jù)庫(kù)遷移操作。