Laravel 遷移:它們是什麼、如何使用它們、範例

Laravel 遷移

在本文中,我們將深入研究 Web 開發的基本面向之一:Laravel 遷移

在本文中,我將旨在闡明 Laravel Migration 的含義、好處和實際實施

我們將了解 Laravel Migration 如何改善您的 Web 開發專案、簡化資料庫管理、維護資料完整性以及利用資料類型、控制器和資料庫連接。

預計閱讀時間: 8 minuti

您是否必須使用創新技術重構一個重要項目,從而也重做資料庫?在一次電話中他們告訴你 框架 遷移 Laravel,專為重要項目而設計,您很感興趣,決定嘗試一下以了解它是否適合您。但唯一的缺點是你不知道如何與他們合作 移民 laravel 並與 Laravel PHP 框架.

好吧,我很高興地告訴您,您在正確的時間來到了正確的地方:事實上,下面我將為您提供利用優勢所需的所有說明 遷移 Laravel, per la creazione e la gestione del tuo 數據庫。別擔心,這些並不是複雜的操作,重要的是對如何組織和建立一切有清晰的想法:您將在本文的過程中了解入門所需的內容。

那麼,您認為現在就採取行動呢?舒適地坐下來,為自己騰出幾分鐘的時間,閱讀所有內容並了解其中的內容 例子 遷移 Laravel:我確信,在閱讀完本指南後,您將完全有能力創建和管理 數據庫雄辯。話雖如此,我所能做的就是祝您閱讀愉快,工作順利!

什麼是 Laravel 遷移

Le 移民 di Laravel sono fondamentali per gestire le modifiche al 數據庫 nelle applicazioni Laravel. Offrono un approccio organizzato per sincronizzare il 數據庫 con la base di codice della tua applicazione in vari ambienti. Immagina che la tua applicazione si evolva nel tempo, richiedendo modifiche alla struttura del 數據庫 o l’aggiunta di nuove tabelle e tipi di dati. Le migrazioni impediscono che questo processo diventi un calvario manuale e soggetto a errori. Ogni file di migrazione è contrassegnato con timestamp, garantendo una cronologia chiara delle modifiche eseguite nell’ordine in cui sono state create. Ciò semplifica attività come il rollback a stati precedenti o l’applicazione di modifiche in modo incrementale.

為什麼要使用 Laravel 遷移

Laravel 遷移 提供了許多優勢,使其成為 Web 開發人員不可或缺的工具 PHP Laravel 框架。我們列出 Laravel Migrations 的一些功能:

  • Gestione dello schema del 數據庫: Laravel 遷移 aiuta a gestire e controllare le versioni degli schemi del 數據庫 e dei tipi di dati, consentendo modifiche strutturate e organizzate alla struttura del 數據庫 nel tempo;
  • 版本控制:該 移民 vengono monitorate nei sistemi di controllo delle versioni come Git, garantendo che le modifiche al 數據庫 possano essere facilmente riviste, annullate o applicate in tutti gli ambienti di sviluppo;
  • Portabilità del 數據庫: Laravel fornisce un approccio indipendente dal 數據庫, consentendo di scrivere le modifiche allo schema una sola volta e di passare facilmente tra diversi sistemi di 數據庫, come MySQL, PostgreSQL, SQLite o SQL Server;
  • 復原和恢復:該 移民 offrono strumenti per ripristinare o reimpostare le modifiche al 數據庫, consentendo agli sviluppatori di recuperare errori, modificare lo schema e mantenere uno stato stabile del 數據庫;
  • 文檔:該 移民 servono come documentazione per l’evoluzione dello schema del 數據庫: ogni file di migration contiene una marca temporale e una descrizione delle modifiche apportate, migliorando la trasparenza e la manutenibilità della base di codice;
  • 歷史控制與回滾: Laravel 追蹤執行的遷移並提供回滾限制,確保遷移是冪等的並在其應用程式和回滾中受到控制;
  • 數據群的播種: Laravel 也提供了以下能力 播種 的數據透過 播種機, spesso utilizzati in combinazione con i controller. Questa funzionalità consente di popolare il 數據庫 con dati iniziali, rendendolo un prezioso complemento alle 移民 用於維護資料完整性;
  • 與測試無縫集成: Questa integrazione consente agli sviluppatori di creare 數據庫 di prova con lo stesso schema del 數據庫 principale dell’applicazione, semplificando la scrittura e l’esecuzione di test correlati al 數據庫;
  • 程式碼庫一致性: Incapsulando le modifiche del 數據庫 nei file di migration, si garantisce che ogni sviluppatore che lavora al progetto possa applicare queste modifiche in modo uniforme nei diversi ambienti, dalle configurazioni di sviluppo locali ai server di produzione.
  • 依賴管理: La funzionalità di gestione delle dipendenze semplifica il processo di gestione di modifiche complesse al 數據庫 che si basano sull’esistenza di determinate strutture.
  • 合作: Poiché lo schema del 數據庫 è definito nel codice, più sviluppatori possono lavorarci contemporaneamente e qualsiasi modifica allo schema può essere facilmente condivisa e unita tramite sistemi di controllo delle versioni come Git. Ciò semplifica il processo di sviluppo e riduce i conflitti.

如何實現 Laravel 遷移

創建一個 移民 in Laravel è fondamentale per gestire le modifiche allo schema del 數據庫. Esaminiamo il processo di creazione di una migration semplice per comprenderne meglio la struttura, inclusi i tipi di dati e i controller.

建立遷移

In Laravel,您可以建立一個 移民 使用 Artisan 指令 make:migration。打開終端並轉到專案目錄 Laravel。然後,執行以下命令:

php artisan make:migration create_example_table

建立遷移
Laravel 遷移項目

該命令將在目錄中建立一個新的遷移文件 database/migrations 有這樣的名字 2024_07_18_000000_create_example_table.php。 “ 時間戳 檔案名稱中確保 移民 按照創建的順序執行。

Laravel 遷移
laravel 遷移表創建

定義架構

Aprendo un file di migration, troverai due metodi: up e down. Il metodo up definisce le modifiche che vuoi apportare allo schema del tuo 數據庫, inclusa la specifica di tipi di dati e controller, mentre il metodo down specifica come invertire tali modifiche.

<?php

使用 Illuminate\Database\Migrations\Migration;
使用 Illuminate\Database\Schema\Blueprint;
使用 Illuminate\Support\Facades\Schema;

返回新類別擴展遷移
{
/ **
* 運行遷移。
*/
公用函數 up(): void
{
Schema::create('houses', function (Blueprint $table) {
$表->id();
$table->foreignId('worksite_id')->constrained('worksites')->cascadeOnDelete();
$table->foreignId('state_id')->constrained('states')->cascadeOnDelete();
$表->字串('代碼');
$table->foreignId('typeofhouse_id')->constrained('typeof_houses')->cascadeOnDelete();
$table->unsignedSmallInteger('room_number');
$table->string('地板');
$table->float('mqc');
$table->double('價格');
$table->double('最低價格');
$table->double('最低存款');
$table->string('附件')->nullable();
$table->text('followup')->nullable();
$table->text('note')->nullable();
$表->時間戳();
});
}

/ **
* 反轉遷移。
*/
公共函數 down(): void
{
架構::dropIfExists('房屋');
}
};

在表格中新增列

如果要為資料實體(即現有資料表的資料列)新增屬性,則必須執行下列命令:

php artisan make:migration add_new_column_to_example_table --table=example

Laravel 遷移 Laravel

開啟新建立的文件
(例如, 2024_08_18_145408_add_new_column_to_example_table.php)並更改 up 和 down 方法如下:

<?php

使用 Illuminate\Database\Migrations\Migration;
使用 Illuminate\Database\Schema\Blueprint;
使用 Illuminate\Support\Facades\Schema;

返回新類別擴展遷移
{
/ **
* 運行遷移。
*/
公用函數 up(): void
{
Schema::table('範例', 函數 (藍圖 $table) {
$table->string('new_column')->nullable(); // 新增列
});
}

/ **
* 反轉遷移。
*/
公共函數 down(): void
{
Schema::table('範例', 函數 (藍圖 $table) {
$table->dropColumn('new_column'); // 刪除已新增的列
});
}
};

運行遷移

Per applicare la migrazione e creare la tabella di esempio nel 數據庫, eseguire il seguente comando Artisan:

php artisan migrate

Questo comando esegue tutte le migrazioni in sospeso. Laravel tiene traccia di quali migrazioni sono già state eseguite nella tabella delle migrazioni del tuo 數據庫.

遷移表
Laravel 遷移表

遷移和索引

La modifica degli indici del 數據庫, inclusa l’aggiunta, la rinominazione o la rimozione, può essere eseguita tramite le migrazioni Laravel. Esaminiamo il processo per ciascuna di queste azioni.

新增到索引:

使用 Illuminate\Database\Schema\Blueprint; 
使用 Illuminate\Support\Facades\Schema;
Schema::table( '使用者' , 函數 (藍圖 $table) {
$表->索引('電子郵件');
}

重新命名索引:

若要重新命名索引,您可以使用

重新命名索引(): 
$table -> renameIndex ( 'email' , 'mobile_number' );
}

索引刪除:

若要刪除索引,您可以使用

刪除索引(): 
$table -> dropIndex('電子郵件');
}

使用外鍵約束:

Laravel può aiutarti a creare vincoli di chiave esterna, che garantiscono che i dati nel tuo 數據庫 rimangano coerenti e seguano le relazioni tra le diverse tabelle.

{ $table ->foreignId('id') 
綁定('用戶')
級聯更新()
級聯刪除();}

Laravel 遷移的最佳實踐和策略

保持遷移小而具體:

創建多個小型遷移比創建一個大型遷移更好。這種方法可以更輕鬆地追蹤和定位出現的問題。

記錄您的變更:

在遷移的 up 方法中,加入註解來描述遷移的作用。當您或您的團隊需要了解過去的變更時,此文件非常寶貴。

遷移測試:

Testa sempre le tue migrazioni in un ambiente di staging prima di applicarle a un 數據庫 di produzione. Questo aiuta a individuare i problemi prima che influiscano sul tuo sistema live.

回滾計劃:

確保您為每次遷移制定了回滾計劃。錯誤會發生,如果出現問題,您需要能夠撤銷變更。

利用版本控制

使用 Git 等版本控制系統來追蹤您的遷移。這提供了審計追蹤並支援與團隊成員的協作。

作者