thinkphp之migration 迁移文件的使用
創建遷移類,首字母必須為大寫
php think migrate:create Users
可以看到目錄下有新文件 .databasemigrations20161117144043_users.php
使用實例
<?php
use PhinxMigrationAbstractMigration;
class Users extends AbstractMigration
{
/**
* Change Method.
*/
public function change()
{
// create the table
$table = $this->table('users',array('engine'=>'MyISAM'));
$table->addColumn('username', 'string',array('limit' => 15,'default'=>'','comment'=>'用戶名,登陸使用'))
->addColumn('password', 'string',array('limit' => 32,'default'=>md5('123456'),'comment'=>'用戶密碼'))
->addColumn('login_status', 'boolean',array('limit' => 1,'default'=>0,'comment'=>'登陸狀態'))
->addColumn('login_code', 'string',array('limit' => 32,'default'=>0,'comment'=>'排他性登陸標識'))
->addColumn('last_login_ip', 'integer',array('limit' => 11,'default'=>0,'comment'=>'最后登錄IP'))
->addColumn('last_login_time', 'datetime',array('default'=>0,'comment'=>'最后登錄時間'))
->addColumn('is_delete', 'boolean',array('limit' => 1,'default'=>0,'comment'=>'刪除狀態,1已刪除'))
->addIndex(array('username'), array('unique' => true))
->create();
}
/**
* Migrate Up.
*/
public function up()
{
}
/**
* Migrate Down.
*/
public function down()
{
}
}
以上為thinkphp手冊提供的 介紹
======================================================分割線============================================================================
1.創建數據表
使用 up 和 down方法
Up 方法
up方法會在Phinx執行遷移命令時自動執行,并且該腳本之前并沒有執行過。你應該將修改數據庫的方法寫在這個方法里。
Down 方法
down方法會在Phinx執行回滾命令時自動執行,并且該腳本之前已經執行過遷移。你應該將回滾代碼放在這個方法里。
Save 方法
當操作 Table 對象時,Phinx 提供了一些操作來改變數據庫。如果你不清楚該使用什么操作,建議你使用 save 方法。它將自動識別插入或者更新操作,并將改變應用到數據庫。
創建數據表時推薦使用 這三個方法!
字段操作
字段類型
字段類型如下:
biginteger
binary
boolean
date
datetime
decimal
float
integer
string
text
time
timestamp
uuid
另外,MySQL adapter 支持enum、set、blob和json(json需要 MySQL 5.7 或者更高)
Postgres adapter 支持smallint、json、jsonb和uuid(需要 PostgresSQL 9.3 或者更高)
2 字段選項
以下是有效的字段選項:
所有字段:
| 選項 | 描述 |
|---|---|
| limit | 為string設置最大長度 |
| length | limit 的別名 |
| default | 設置默認值 |
| null | 允許空 |
| after | 指定字段放置在哪個字段后面 |
| comment | 字段注釋 |
decimal類型字段:
| 選項 | 描述 |
|---|---|
| precision | 和 scale 組合設置精度 |
| scale | 和 precision 組合設置精度 |
| signed | 開啟或關閉 unsigned 選項(僅適用于 MySQL) |
enum和set類型字段:
| 選項 | 描述 |
|---|---|
| values | 用逗號分隔代表值 |
integer和biginteger類型字段:
| 選項 | 描述 |
|---|---|
| identity | 開啟或關閉自增長 |
| signed | 開啟或關閉 unsigned 選項(僅適用于 MySQL) |
timestamp類型字段:
| 選項 | 描述 |
|---|---|
| default | 設置默認值 (CURRENT_TIMESTAMP) |
| update | 當數據更新時的觸發動作 (CURRENT_TIMESTAMP) |
| timezone | 開啟或關閉 with time zone 選項 |
可以在標準使用addTimestamps()方法添加created_at和updated_at。方法支持自定義名字 。使用addSoftDelete 添加軟刪除字段
更多請參考
https://tsy12321.gitbooks.io/phinx-doc/content/writing-migrations-working-with-tables.html
3 執行命令
php think migrate:run
執行所有遷移文件中的run方法
php think migrate:rollback
回滾命令 執行最后執行的down命令
總結
以上是生活随笔為你收集整理的thinkphp之migration 迁移文件的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端插件网址
- 下一篇: Winform(C#)输入完毕后,按En