ThinkPHP
常用命令
think migrate:run 更新
think migrate:rollback 还原 -t 参数 还原到指定版本
think migrate:create CreateTestTable 创建一个文件,文件名须采用驼峰命名法 首字母必须用大写
可用字段
数据库结构构造器包含了许多字段类型,供你构建数据表时使用:
命令 | 描述 |
---|---|
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'); } }