ThinkPHP-数据库迁移和填充(一)

2023-05-02 18:50:05 浏览数 (2)

ThinkPHP提供了数据库迁移和填充的功能,可以方便地进行数据库结构的管理和数据的初始化。

数据库迁移

数据库迁移是一种管理数据库结构变化的方法。在开发过程中,随着业务需求的变化,数据库结构也需要不断地进行调整和修改。使用数据库迁移可以将这些变化记录下来,并可以方便地进行回滚和升级。

创建迁移文件

在ThinkPHP中,可以使用make:migration命令来创建迁移文件。例如,要创建一个名为create_users_table的迁移文件,可以执行如下命令:

代码语言:javascript复制
php think make:migration create_users_table

执行该命令后,将在database/migrations目录下创建一个新的迁移文件,文件名以时间戳和迁移名称命名,例如:

代码语言:javascript复制
20220503095516_create_users_table.php

在该文件中,可以使用updown方法定义数据库结构的变化。up方法表示数据库结构的升级操作,down方法表示数据库结构的回滚操作。

例如,以下是一个创建users表的迁移文件的示例:

代码语言:javascript复制
<?php
use thinkmigrationMigrator;
use thinkmigrationdbColumn;

class CreateUsersTable extends Migrator
{
    public function up()
    {
        $table = $this->table('users');
        $table->addColumn('username', 'string', ['limit' => 100])
              ->addColumn('password', 'string', ['limit' => 255])
              ->addColumn('email', 'string', ['limit' => 255])
              ->addColumn('status', 'integer')
              ->addColumn('created_at', 'timestamp', ['default' => 'CURRENT_TIMESTAMP'])
              ->addColumn('updated_at', 'timestamp', ['default' => 'CURRENT_TIMESTAMP', 'update' => 'CURRENT_TIMESTAMP'])
              ->create();
    }

    public function down()
    {
        $this->dropTable('users');
    }
}

在上面的示例中,up方法中定义了创建users表的操作,包括添加usernamepasswordemailstatuscreated_atupdated_at等字段。down方法中定义了回滚操作,即删除users表。

执行迁移

执行迁移可以使用migrate命令。例如,要执行所有未执行的迁移文件,可以执行如下命令:

代码语言:javascript复制
php think migrate

执行该命令后,将自动执行所有未执行的迁移文件。

回滚迁移

回滚迁移可以使用rollback命令。例如,要回滚到上一个迁移,可以执行如下命令:

代码语言:javascript复制
php think rollback

执行该命令后,将自动回滚到上一个迁移文件。

0 人点赞