🙋‍♂️

Laravel初心者が学んだこと - マイグレーション編

2021/09/02に公開

PHPのフレームワークでは、cakePHPを少し触ったことがありますが、今回初めてフレームワークを体系的に学ぶということでLaravelを触ってみました。その際にメモしたことを簡単にまとめてみました。
今回はその第一弾ということで『マイグレーション』についてのまとめです!

そもそもマイグレーションとは?

  • 何かを他の環境に移行すること
  • ここではDBの話
  • 自分が定義したDBを他人がすぐ使えるようにする
  • PHPファイルでDBを管理


マイグレーションが必要な理由

新機能の開発に伴って、データベースの形が変わることはよくあること。

例えば、Usersテーブルにageカラムを追加した場合、他の人がソースコードを取り込んだ時、マイグレーションない場合、追加したカラムがないのでエラーが発生してしまう。

→ そのためPHPファイルでLaravelと一緒に管理することによって、スムーズに移行できる。GitHubにマイグレーションファイルを追加しておく。

DBマイグレーションがあれば、機能の追加とともにDBの整合性もとれる


マイグレーションでできること

  • テーブルの作成・削除
  • カラムの追加・削除
  • テーブル・カラムの変更


マイグレーションの使い方

  • 実例
php artisan make:migration create_tags_table --create=tags
  • オプション
    • --create(同時にテーブル作成)
    • --table(変更テーブル指定)
      コマンドを実行すると、マイグレーションファイルが作成されるので、そのファイル内容を書き換えることで自分の思い通りのテーブルを作成できる。


テーブルの追加実行

php artisan migrate

実行すると、マイグレーションファイルの内容に実際のDBが変更される


テーブルの変更(カラム追加)

php artisan make:migration add_tag_id_memos_table --table=memos


マイグレーションでよく使う命令

  • ->change() : カラム変更
  • ->nullable() : NULL許可カラム
  • ->default(値) : 絡むのデフォルト値を指定
  • ->unsigned() : 符号なしカラム(+や-が付かない)
  • ->after(ターゲットカラム) : カラムを作る位置を指定
  • ->comment(コメント) : DBにコメントを書く機能


まとめと重要ポイント

  1. マイグレーションはDBを他人に共有するための仕組み
  2. チーム開発においては必須
  3. インターネット公開サーバを構築するなら必須
  4. マイグレーションファイルを使うとあらゆるDB操作ができる

次回はLaravelの「モデル」についてまとめてみようと思います!
引き続き学習を進めていきます!

Discussion