PHP工作笔记:使用yii migrate管理、生成数据库

时间:2023-03-09 12:59:13
PHP工作笔记:使用yii migrate管理、生成数据库

第一步:进入yii migrate

  通过dos(我是win7系统,其他系统类似,就是进入字符界面)打开网站目录

phpStudy/WWW/local/ddc_dlss 

  输入

./yii migrate

PHP工作笔记:使用yii migrate管理、生成数据库

  按回车,会有个判断是否打开migrate,输入y按回车

  这时候,就可以创建自己的数据库创建或者修改任务了!

举例1:

删除files表的data字段

  第一步:创建任务文件

$ ./yii migrate/create del_colum_data_in_files_table

  按回车,yii会在console/migrations目录下创建一个带del_colum_data_in_files_table名字的文件(之所以这样命名,方便、直观显示这个任务的功能),前缀m161209_012357_是自动生成的,自动避免重名。

PHP工作笔记:使用yii migrate管理、生成数据库

  第二步:写执行的任务

  打开m161209_012357_del_colum_data_in_files_table.php,原始代码如下

PHP工作笔记:使用yii migrate管理、生成数据库

  需要执行删除字段的任务写在up函数里面,代码如下

PHP工作笔记:使用yii migrate管理、生成数据库

  我这里做了个判断,如果files表data字段存在才执行删除。

  第三步:执行删除任务

  刚才的dos我没关闭,直接执行

 ./yii migrate m130524_201442_init.php

  m130524_201442_init.php是系统自动生成的初始化文件,名字以init结尾,前缀肯定会跟我不一样,很好认,文件名带init,我截图下给大家

PHP工作笔记:使用yii migrate管理、生成数据库

  

  举例2:

在file_monitor'表添加order_file_num字段,整形,长度为6

  代码如下:

<?php

use yii\db\Migration;
use yii\db\Schema;
//在file_monitor'表添加order_file_num字段
class m161209_015401_add_colum_order_file_num_in_file_monitor_table extends Migration
{
public function up()
{
if(!isset(Yii::$app->db->getTableSchema('file_monitor')->columns['order_file_num'])){
$this->addColumn('file_monitor','order_file_num', Schema::TYPE_INTEGER.'(6) COMMENT "订单文件数"');
}
} public function down()
{
echo "m161209_015401_add_colum_order_file_num_in_file_monitor_table cannot be reverted.\n"; return false;
} /*
// Use safeUp/safeDown to run migration code within a transaction
public function safeUp()
{
} public function safeDown()
{
}
*/
}

  

更多方法的书写,大家可以打开

Migration.php(各种数据库表创建修改方法)和Schema.php(设置字段类型、长度等用到)看看