# 数据库migration的使用改造-表 用到的类库 ```php use ClassLibrary\ClMigrateTable; ``` 我用一个用户表来做例子。先创建数据库表 ```php php think migrate:create User ``` 这个时候对应创建了 ```php database/migrations/20180122074850_user.php ``` 生成的文档内容 ```php <?php use think\migration\Migrator; use think\migration\db\Column; class User extends Migrator { public function change() { } } ``` 修改代码之后 ```php <?php use think\migration\Migrator; use think\migration\db\Column; use ClassLibrary\ClMigrateTable; class User extends Migrator { public function up() { $table = 'user'; if($this->hasTable($table)){ return; } $this->table($table) ->setComment( ClMigrateTable::instance() ->fetch('用户表') ) ->create(); } public function down() { parent::down(); $table = 'user'; if($this->hasTable($table)){ $this->dropTable($table); } } } ``` 此时,看下数据库表DDL ```sql CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='{"name":"用户表","create_api":["getList","get","create","delete","update"]}'; ``` 其中COMMENT,是一个JSON字符串,这个JSON的字符串的想象空间就无穷了。 ### ClMigrateTable函数说明 函数名 | 注释 ---|--- instance | 获取实例对象 fetch | 获取表Comment定义Json usingCache | 是否使用缓存,如果缓存时间大于0,则会生成带缓存的代码1 createView | 暂时忽略该方法,为后期考虑 createApi | 用于控制创建的方法,默认会自动创建5个Api接口 getUpdateCommentSql | 用于获取修改table.comment的注释语句,目前Migrate没有提供修改表comment的方法,故采用直接执行sql语句的办法来修改表comment