温馨提示×

Lumen框架的数据库迁移操作

小樊
91
2024-08-29 12:14:27
栏目: 大数据

Lumen框架是一个轻量级的PHP框架,用于构建RESTful API和微服务。它的数据库迁移操作类似于Laravel框架,但有一些不同之处。以下是在Lumen中进行数据库迁移操作的步骤:

  1. 安装Lumen框架:

    使用Composer创建一个新的Lumen项目:

    composer create-project --prefer-dist laravel/lumen lumen-app
    
  2. 配置数据库连接:

    .env文件中配置数据库连接信息:

    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
    
  3. 启用Eloquent ORM和数据库门面:

    bootstrap/app.php文件中取消以下行的注释:

    $app->withEloquent();
    $app->withFacades();
    
  4. 安装数据库迁移组件:

    composer.json文件中添加以下内容:

    "require": {
        "illuminate/database": "^8.0"
    }
    

    然后运行composer update

  5. 创建迁移文件:

    使用Artisan命令创建一个新的迁移文件:

    php artisan make:migration create_users_table --create=users
    

    这将在database/migrations目录下生成一个新的迁移文件。

  6. 编写迁移文件:

    打开生成的迁移文件,编写表结构:

    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');
        }
    }
    
  7. 运行迁移:

    使用Artisan命令运行迁移:

    php artisan migrate
    

    这将创建users表。

  8. 回滚迁移:

    如果需要回滚迁移,可以使用以下命令:

    php artisan migrate:rollback
    
  9. 创建数据填充文件:

    使用Artisan命令创建一个新的数据填充文件:

    php artisan make:seeder UsersTableSeeder
    

    这将在database/seeds目录下生成一个新的数据填充文件。

  10. 编写数据填充文件:

    打开生成的数据填充文件,编写填充数据:

    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'),
            ]);
        }
    }
    
  11. 运行数据填充:

    使用Artisan命令运行数据填充:

    php artisan db:seed --class=UsersTableSeeder
    

现在,你已经完成了Lumen框架的数据库迁移操作。

0