thinkphp5下使用phinx

本文介绍如何在ThinkPHP 5中使用phinx进行数据库迁移及数据填充操作,包括迁移类和Seeder的创建方法,以及常见命令如migrate:run、migrate:rollback等的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tp5学习laravel,支持phinx。不过laravel是自己支持,tp是用了开源的第三方库。用法都差不多。

安装think-migrate

composer require topthink/think-migration

注意事项,不支持修改文件配置目录

在命令行下运行查看帮助,可以看到新增的命令

php think 
 migrate
  migrate:create     Create a new migration
  migrate:rollback   Rollback the last or to a specific migration
  migrate:run        Migrate the database
  migrate:status     Show migration status
 optimize
  optimize:autoload  Optimizes PSR0 and PSR4 packages to be loaded wit
h classmaps too, good for production.
  optimize:config    Build config and common file cache.
  optimize:route     Build route cache.
  optimize:schema    Build database schema cache.
 seed
  seed:create        Create a new database seeder
  seed:run           Run database seeders

创建迁移类,类名首字母必须为大写,采用驼峰命名法

php think migrate:create Users
可以看到目录下有新文件 .\database\migrations\20161117144043_users.php
创建表

public function change()
    {
        $table = $this->table('xxxx',array('engine'=>'InnoDB'));
        $table->addColumn('xxx', 'integer')
              ->addColumn('xx', 'string', array('limit' => 50))
              ->addColumn('xx', 'string', array('limit' => 50))
              ->addColumn('xx', 'string', array('limit' => 50))
              ->addColumn('xxxx', 'integer', array('limit' => MysqlAdapter::INT_TINY))
              ->addIndex(array('xxxx'))
              ->create();
    }

创建seed

php think seed:create UserSeeder

提示

Create seeds directory? [y]/n (yes/no) [yes]:
Y
生成 .\database\seeds\UserSeeder.php
填充里面的run 方法

– 注意点:创建的目录文件可能没有权限,需要手动修改权限和所属group和owner

– 执行

php think migrate:run

– 回滚

php think rollback

– 执行seeder

php think seed:run -v

seeder没有rollback 方法,如果重复执行,会插入重复的数据,因此尽量采用插入包含主键ID的数据,避免重复插入。如果中途执行失败,要执行后续某个指定表的seeder,可以加入 -s XXXSeeder

php think seed:run -s UserSeeder

更多资料,请访问
http://docs.phinx.org/en/latest/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值