ホームページ >PHPフレームワーク >Laravel >Laravelでテーブル構造を変更する方法
laravel でテーブル構造を変更する方法: 1. マイグレーション ファイルを生成する; 2. コマンド「php職人 make:migration...」を実行する; 3. 「$table->text('images」を追加する) ')- >nullable()..." 以上です。
この記事の動作環境: Windows 7 システム、Laravel バージョン 5.7、Dell G3 コンピューター。
laravel でテーブル構造を変更するにはどうすればよいですか?
laraval 移行を使用してデータベース テーブル構造を変更する
SQL ファイルを使用して、データベース テーブル構造の変更を保存および追跡しています。ただし、SQL ファイルの使用には次のような欠点があります。
どの SQL ファイルが実行され、どの SQL ファイルが実行されていないかを判断することができません。 SQL ファイル名のプレフィックスとして日付が追加されますが、複数人で開発しており、オンライン データ テーブルの構造が長期間更新されていない場合、頭を悩ませることがよくあります
新しいフィールドの追加
たとえば、images フィールドを記事テーブルに追加したいと考えています。 最初に移行ファイルを生成する必要があります。コマンドphp artisan make:migration add_images_to_articles_table --table=articlesを実行すると、出力結果は
Created Migration: 2018_03_21_225819_add_images_to_articles_tableとなり、対応するデータベース/migrations/ ディレクトリにファイルが自動的に生成されます。
database/migrations/2018_03_21_225819_add_images_to_articles_table.phpファイル名の前に日付と時刻が付いていることがわかります。
public function up() { Schema::table('articles', function (Blueprint $table) { $table->text('images'); }); }公式ドキュメントに従って、画像フィールドを追加し、変更を保存します。コマンド
php artisan migrateOutput
Migrating: 2018_03_21_225819_add_images_to_articles_table Migrated: 2018_03_21_225819_add_images_to_articles_tableを実行します。この時点で、データ テーブルの移行を見ると、追加のレコード行が見つかります。 次に、変更を運用環境に同期します。唯一の違いは、運用サーバーがコマンドを実行するかどうかを確認するメッセージを表示することです。
************************************** * Application In Production! * ************************************** Do you really wish to run this command? (yes/no) [no]: > yes Migrating: 2018_03_21_225819_add_images_to_articles_table Migrated: 2018_03_21_225819_add_images_to_articles_table
フィールドの変更
この性急なリリースにより 500 件のエラーが発生しましたSQLSTATE[HY000]: General error: 1364 Field 'images' doesn't have a default value必要なのは、新しい移行ファイルを作成して追加することだけです
$table->text('images')->nullable()->change();オンラインで移行を再度実行して問題を解決してください。
関連する推奨事項:
以上がLaravelでテーブル構造を変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。