CakePHP是一個流行的PHP MVC框架,提供了各種工具和功能來幫助開發人員創建高效的Web應用程式。 Phinx是一個靈活的資料庫遷移庫,可以幫助開發人員輕鬆管理資料庫變更。本文將介紹如何在CakePHP中使用Phinx。
使用Composer安裝Phinx:
composer require robmorgan/phinx
安裝完成後,將在您的應用程式的vendor/bin
目錄中取得Phinx可執行檔。
在app/config目錄中建立一個新檔案phinx.php,並新增以下內容。
use CakeCoreConfigure; return [ 'paths' => [ 'migrations' => [ __DIR__ . '/../config/Migrations', ], 'seeds' => [ __DIR__ . '/../config/Seeds', ], ], 'environments' => [ 'default_migration_table' => 'phinxlog', 'default_database' => 'default', 'default' => [ 'adapter' => 'mysql', 'host' => '127.0.0.1', 'name' => 'mydatabase', 'user' => 'myuser', 'pass' => 'mypassword', 'port' => '3306', 'charset' => 'utf8' ], ] ];
此設定檔指示Phinx在應用程式的config/Migrations
和config/Seeds
目錄中尋找遷移和種子文件,並使用MySQL連接到名為mydatabase
的資料庫。
在config/Migrations
目錄中建立一個新的遷移文件,例如CreateUsersTable.php
。遷移檔案應定義一個up
和一個down
方法,用於在資料庫上執行或撤銷遷移。
範例:
use PhinxMigrationAbstractMigration; class CreateUsersTable extends AbstractMigration { public function change() { $table = $this->table('users'); $table->addColumn('username', 'string', ['limit' => 20]) ->addColumn('password', 'string', ['limit' => 100]) ->addColumn('email', 'string', ['limit' => 50]) ->addColumn('created', 'datetime') ->addColumn('updated', 'datetime') ->create(); } }
該遷移檔案將在資料庫中建立一個新的users
表,並新增username
、password
、email
、created
和updated
列。
使用下列命令執行遷移:
vendor/bin/phinx migrate
此指令將執行所有處於待處理狀態(未套用)的遷移檔案。
您可以使用以下命令將遷移回退到其先前的狀態:
vendor/bin/phinx rollback
如果要回退到特定遷移之前的狀態,請使用以下命令:
vendor/bin/phinx rollback -t {timestamp}
其中{timestamp}
是要回退到的遷移的時間戳記。
在config/Seeds
目錄中建立一個新的種子文件,例如UsersSeeders.php
。種子檔案應定義一個run
方法,該方法將填入符合特定條件的表。
範例:
use PhinxSeedAbstractSeed; class UsersSeeder extends AbstractSeed { public function run() { $data = [ [ 'username' => 'admin', 'password' => password_hash('123456', PASSWORD_DEFAULT), 'email' => 'admin@example.com', 'created' => date('Y-m-d H:i:s'), 'updated' => date('Y-m-d H:i:s') ], [ 'username' => 'user1', 'password' => password_hash('password', PASSWORD_DEFAULT), 'email' => 'user1@example.com', 'created' => date('Y-m-d H:i:s'), 'updated' => date('Y-m-d H:i:s') ] ]; $table = $this->table('users'); $table->insert($data)->save(); } }
此種子檔案將在users
表中插入兩個初始使用者。
使用以下命令運行所有種子檔案:
vendor/bin/phinx seed:run
此命令將運行所有處於待處理狀態(未應用)的種子文件。
您可以使用下列指令執行特定種子檔案:
vendor/bin/phinx seed:run -s {seederName}
其中{seederName}
是要執行的種子檔案的名稱。
現在您已經了解如何在CakePHP中使用Phinx了,開始嘗試使用它來管理您的資料庫變更吧!
以上是如何在CakePHP中使用Phinx?的詳細內容。更多資訊請關注PHP中文網其他相關文章!