您好,登錄后才能下訂單哦!
Laravel遷移文件編寫(xiě)要點(diǎn)主要包括以下幾個(gè)方面:
Laravel的遷移文件通常位于 database/migrations
目錄下。每個(gè)遷移文件都有一個(gè)唯一的名稱,格式為 yyyy_mm_dd_hhmmss_create_table_name.php
。
遷移文件的主要目的是創(chuàng)建數(shù)據(jù)庫(kù)表。你可以使用 Schema::create
方法來(lái)定義表的列和約束。
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateUsersTable extends Migration
{
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('users');
}
}
你可以使用 Blueprint
對(duì)象的 string
, integer
, boolean
, text
, date
, time
, decimal
, float
, longText
, binary
, nullable
, primary
, unique
, foreign
, index
, default
等方法來(lái)定義列的類(lèi)型和約束。
如果你需要修改表結(jié)構(gòu),可以使用 Blueprint
對(duì)象的其他方法,如 addColumn
, dropColumn
, renameColumn
, changeColumn
, addConstraint
, dropConstraint
, createIndex
, dropIndex
等。
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->string('phone')->nullable();
$table->dropUnique('users_email_unique');
});
}
public function down()
{
Schema::table('users', function (Blueprint $table) {
$table->dropColumn('phone');
$table->addUnique('users_email_unique', 'email');
});
}
如果你需要?jiǎng)h除表,可以使用 Blueprint
對(duì)象的 dropTable
方法。
public function down()
{
Schema::dropIfExists('users');
}
你可以使用 Artisan 命令行工具來(lái)運(yùn)行遷移文件。
php artisan migrate
如果你需要回滾最近的遷移,可以使用以下命令:
php artisan migrate:rollback
如果你需要重置所有遷移到初始狀態(tài),可以使用以下命令:
php artisan migrate:reset
如果你需要重新運(yùn)行所有遷移并回滾之前的操作,可以使用以下命令:
php artisan migrate:refresh
yyyy_mm_dd_hhmmss_create_table_name.php
。CreateUsersTable
。你可以在遷移文件中添加注釋?zhuān)员愀玫乩斫獯a。
/**
* Create the users table.
*
* @return void
*/
通過(guò)遵循這些要點(diǎn),你可以有效地編寫(xiě)和管理Laravel遷移文件。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。