首先,准备工作当然是安装 compose ,但是在这里我就不给大家讲解了,有兴趣的朋友可以点击下面的链接去学习
https://pkg.phpcomposer.com/#how-to-install-composer
2、进入项目根目录按住shift+鼠标右键选择在当前目录打开cmd,然后给TP5 安装 migration
composer require topthink/think-migration=1.*
注:不要安装2.0版本的扩展 5.0只支持1.*的扩展,大家可以在项目的根目录composer.json里面 找到 think-migration 后面改成 1.*
3、安装完成过后我们来查看下是否有 migrate 命令
php think
好了,在命令行下运行查看帮助,可以看到新增的命令
4、接下来我们通过 migrate:create 来创建迁移类(首字母必须大写)
前提:appplication 下面的 database.php 文件必须要配置好数据库
php think migrate:create CreateUserTable
注:创建一个新的数据迁移类,php think migrate:create ,文件名须采用驼峰命名法
文件会在database/migrations 下面生成一个文件
5、 在migrate中有三个方法
up:在migrate:run时执行(前提是文件中不存在change方法)
down:在migrate:rollback时执行(前提是文件中不存在change方法)
change:migrate:run 和migrate:rollback时执行 (如果存在该方法 则不会去执行up 与down)
在创建完文件类过后删除里面的change方法
下面就是一个一份migrate文件:
table('user');
$table->addColumn('username', 'string',array('limit' => 32,'default'=>'','comment'=>'用户名'))
->addColumn('nickname', 'string',array('limit' => 32,'default'=>'','comment'=>'昵称'))
->addColumn('password', 'string',array('limit' => 100,'default'=>'','comment'=>'用户密码'))
->addColumn('salt', 'string',array('limit' => 50,'default'=>'','comment'=>'盐'))
->addColumn('login_status', 'integer',array('limit' => 11,'default'=>0,'comment'=>'登陆状态'))
->addColumn('login_code', 'string',array('limit' => 32,'default'=>0,'comment'=>'排他性登陆标识'))
->addColumn('last_login_ip', 'string',array('limit' => 30,'default'=>0,'comment'=>'最后登录IP'))
->addColumn('last_login_time', 'timestamp',array('comment'=>'最后登录时间'))
->addTimestamps() //默认生成create_time和update_time两个字段
->addIndex(array('username'), array('unique' => true))
->create();
}
/**
* 提供回滚的删除用户表方法
*/
public function down(){
$this->dropTable('user');
}
}
createTable(创建表)
renameTable(重命名表)
addColumn(添加字段)
renameColumn(重命名字段)
addIndex(添加索引)
addForeignKey(添加外键)
6、完成数据迁移工作 migrate:run
php think migrate:run
注:如果迁移错误可以通过 migrate:rollback -t 回滚到制定的版本
7、接下来创建数据库的填充文件 send:create
php think send:create UserSeeder
下面是一个seender文件的详情:
'admin' ,
'nickname' => 'Bob',
'password' => '9OHkSqf4SZkZNkMuCzTwU58KSKF7qblCLgJKq6GuWjc',
'salt' => 'qfin3eg8e4g0c4okgkkg4cc04gcscwk ',
'login_status' => '1',
'login_code' => '123456',
'last_login_ip' => '127.0.0.1',
'last_login_time' => date('Y:m:d H:i:s',time()),
'create_time' => date('Y:m:d H:i:s',time()),
'update_time' => date('Y:m:d H:i:s',time()),
];
$this->table('user')->insert($data)->save();
}
}
8、开始进行数据库填充 send:run
php think seed:run
Over....
好了,教程已经完了,又不懂的小伙伴可以联系我,欢迎大家随时提问。