thinkphp中 数据库 迁移工具Migration

332次阅读
没有评论

共计 1617 个字符,预计需要花费 5 分钟才能阅读完成。

常用命令

migrate:run 更新

migrate:rollback 还原 -t 参数 还原到指定版本

think migrate:create Test    创建一个文件,文件名须采用驼峰命名法 首字母必须用大写

可用字段

数据库结构构造器包含了许多字段类型,供你构建数据表时使用:

命令 描述
Column::bigInteger('votes'); 相当于 BIGINT 型态。
Column::binary('data'); 相当于 BLOB 型态。
Column::boolean('confirmed'); 相当于 BOOLEAN 型态。
Column::char('name', 4); 相当于 CHAR 型态,并带有长度。
Column::date('create_time'); 相当于 DATE 型态。
Column::dateTime('create_time'); 相当于 DATETIME 型态。
Column::decimal('amount', 5, 2); 相当于 DECIMAL 型态,并带有精度与基数。
Column::enum('choices', ['foo', 'bar']); 相当于 ENUM 型态。
Column::float('amount'); 相当于 FLOAT 型态。
Column::integer('votes'); 相当于 INTEGER 型态。
Column::json('options'); 相当于 JSON 型态。
Column::jsonb('options'); 相当于 JSONB 型态。
Column::longText('description'); 相当于 LONGTEXT 型态。
Column::mediumInteger('numbers'); 相当于 MEDIUMINT 型态。
Column::mediumText('description'); 相当于 MEDIUMTEXT 型态。
Column::smallInteger('votes'); 相当于 SMALLINT 型态。
Column::string('email'); 相当于 VARCHAR 型态。
Column::string('name', 100); 相当于 VARCHAR 型态,并带有长度。
Column::text('description'); 相当于 TEXT 型态。
Column::time('sunrise'); 相当于 TIME 型态。
Column::tinyInteger('numbers'); 相当于 TINYINT 型态。
Column::timestamp('added_on'); 相当于 TIMESTAMP 型态。
Column::uuid('id'); 相当于 UUID 型态。

以下列表为字段的可用修饰。

修饰 描述
->setAfter('column') 将此字段放置在其它字段「之后」(仅限 MySQL)
->setComment('my comment') 增加注释
->setDefault($value) 为此字段指定「默认」值
->setNullable() 此字段允许写入 NULL 值
->setUnsigned() 设置 integer 字段为 UNSIGNED

示例

class Test extends Migrator
{
    public function up() {
        $this->table('test2',[
            'engine' => 'InnoDB', // 设置引擎
            'id' => false, // 取消自动创建ID 字段
            'primary_key' => ['user_id'], // 指定 user_id 字段为主键
        ])
            ->addColumn(
                Column::integer('user_id') // 字段类型
                ->setIdentity(true)     // 设置 自增
            )
            ->addColumn(
                Column::string('username')
                ->setDefault('') // 设置默认值
            )->create();
    }

    public function down() {
        $this->dropTable('test2');
    }
}

正文完
 0
Eric chan
版权声明:本站原创文章,由 Eric chan 于2020-05-14发表,共计1617字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。