ThinkPHP提供了数据库迁移和填充的功能,可以方便地进行数据库结构的管理和数据的初始化。
数据库迁移
数据库迁移是一种管理数据库结构变化的方法。在开发过程中,随着业务需求的变化,数据库结构也需要不断地进行调整和修改。使用数据库迁移可以将这些变化记录下来,并可以方便地进行回滚和升级。
创建迁移文件
在ThinkPHP中,可以使用make:migration
命令来创建迁移文件。例如,要创建一个名为create_users_table
的迁移文件,可以执行如下命令:
php think make:migration create_users_table
执行该命令后,将在database/migrations
目录下创建一个新的迁移文件,文件名以时间戳和迁移名称命名,例如:
20220503095516_create_users_table.php
在该文件中,可以使用up
和down
方法定义数据库结构的变化。up
方法表示数据库结构的升级操作,down
方法表示数据库结构的回滚操作。
例如,以下是一个创建users
表的迁移文件的示例:
<?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
表的操作,包括添加username
、password
、email
、status
、created_at
和updated_at
等字段。down
方法中定义了回滚操作,即删除users
表。
执行迁移
执行迁移可以使用migrate
命令。例如,要执行所有未执行的迁移文件,可以执行如下命令:
php think migrate
执行该命令后,将自动执行所有未执行的迁移文件。
回滚迁移
回滚迁移可以使用rollback
命令。例如,要回滚到上一个迁移,可以执行如下命令:
php think rollback
执行该命令后,将自动回滚到上一个迁移文件。