php迁移工具phoneix教程
Posted 代码当酒喝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php迁移工具phoneix教程相关的知识,希望对你有一定的参考价值。
两个包最新版低要求都是>=7.1
,因此,非常使用thinkphp6.x的集成和使用
composer require lulco/phoenix
faker
composer require fakerphp/faker
然后项目根目录新建配置文件phoenix.php
<?php
return [
'migration_dirs' => [
'm' => __DIR__ . '/database/m',
's' => __DIR__ . '/database/s',
],
'environments' => [
'local' => [
'adapter' => 'mysql',
'host' => 'localhost',
'port' => 3306, // optional
'username' => 'root',
'password' => 'root',
'db_name' => 'blog',
'charset' => 'utf8mb4',
],
'production' => [
'adapter' => 'mysql',
'host' => 'production_host',
'port' => 3306, // optional
'username' => 'user',
'password' => 'pass',
'db_name' => 'blog',
'charset' => 'utf8mb4',
],
],
'default_environment' => 'local',
'log_table_name' => 'phoenix_log',
];
然后手动创建目录
指令
创建
<文件名> [目录]
vendor/bin/phoenix create Users m
执行
--dir s
是指定执行那个目录
vendor/bin/phoenix migrate --dir s
回退
vendor/bin/phoenix rollback --dir s
模板
创建表结构模板
<?php
use Phoenix\\Migration\\AbstractMigration;
class User extends AbstractMigration
{
protected function up(): void
{
$this->execute(
"create table `lu_user`
(
id int not null auto_increment primary key,
username varchar(10) comment '用户名',
password varchar(32) comment '密码',
phone varchar(11) comment '注册手机号',
email varchar(50) unique comment '邮箱',
last_login_ip char (15) comment '最后登录IP地址',
last_login_time timestamp null comment '最后登录的时间',
active tinyint not null default 0 comment '激活状态 0:未激活 1:激活',
create_time timestamp null comment '创建时间',
update_time timestamp null comment '更新时间',
delete_time timestamp null comment '删除时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"
);
}
protected function down(): void
{
$this->execute(
"DROP TABLE `lu_user`;"
);
}
}
创建填充文件模板
<?php
use Phoenix\\Migration\\AbstractMigration;
class UserSeeder extends AbstractMigration
{
protected function up(): void
{
$faker = Faker\\Factory::create('zh_CN');
$data = [];
for ($i = 0; $i < 100; $i++) {
$data[] = [
'username' => $faker->randomLetter . $faker->unique()->randomNumber(5, true),
'password' => $faker->password,
'phone' => $faker->phoneNumber,
'email' => $faker->email,
'last_login_ip' => $faker->ipv4,
'last_login_time' => date('Y-m-d H:i:s'),
'active' => [0, 1][rand(0, 1)],
'create_time' => date('Y-m-d H:i:s'),
'update_time' => date('Y-m-d H:i:s'),
'delete_time' => date('Y-m-d H:i:s'),
];
}
//清空表
$this->table('lu_user')->truncate();
//插入数据
$this->insert('lu_user',$data);
//更新数据,方便我们测试
$this->update('lu_user',['username'=>'admin','password'=>'admin123'],['id'=>1]);
}
protected function down(): void
{
$this->table('lu_user')->truncate();
}
}
以上是关于php迁移工具phoneix教程的主要内容,如果未能解决你的问题,请参考以下文章
使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段