マイグレーション機能とは【CakePHP】データベースを簡単に作成する方法ご紹介

カテゴリ:インターン生ブログ

公開日:2020.06.07 最終更新日:2020.06.09
このエントリーをはてなブックマークに追加

こんにちは!伊神です!

この記事では、PHPフレームワーク「Cakephp」でマイグレーション機能を使用し簡単にデータベースを作成する方法をご紹介します!

マイグレーション機能は自動でデータベースを作成したりサンプルデータを挿入できるのでとても便利です。

開発環境
・PHP :7.3.1
・CakePHP:4.0.8
・MySQL:5.7.25
・Apache:2.2.34

マイグレーションとは

マイグレーションはテーブル定義を管理する仕組みのことです。

CakePHPでマイグレーション機能を使用したい場合は、まずマイグレーションファイルというphpのファイルを作成し、そこにアプリケーションで利用したいテーブルの定義を記述します。

マイグレーションファイルはデータベースの設計書のようなもので、Artisan migrateコマンドを実行することによって自動でデータベースを構成することができます。

CakePHPのマイグレーション機能にはシーディングというテスト用のサンプルデータの自動生成できる機能などがありとても便利です。

CakePHP公式マイグレーション:https://book.cakephp.org/3/ja/phinx/migrations.html

1.マイグレーションファイルの生成

idとnameカラムでsamplesという名前のテーブルを作成する為のマイグレーションファイルを生成します。

controllerやmodelの生成時にも使用するbakeコマンドを使用します。

idカラムはデフォルトでテーブルの作成時にauto_incrimentのprimary_keyとして自動付与されるのでnameのstringだけ定義します。

20XXXXXX_CreateSamples.php が cakephp/config/Migrations に生成されます。

migrationファイルの配置場所

2.マイグレーション実行

マイグレーションを実行し、samplesテーブルを構築します。

bin/cake migrations migrateを実行することによってデータベースを構成することができます。

phpMyadminでテーブルが作成されているか確認できます。

samplesテーブルの中にidとnameカラムかできていることがわかります。

余談:idをuuidに変更したい場合

先ほど作成したマイグレーションファイルを以下のように設定することでidをuuidに変更することができます。

nameにはVARCHAR 型、オプションで limit を渡しているので、長さ128になります。

3.マイグレーションでカラムの追加,変更,削除

マイグレーションはデータベースの構成だけでなくカラムの追加,変更,削除を行うことができます。

カラムの制限なども指定できたりするので詳しく知りたい方はこちらを参考にしてください。

CakePHP公式マイグレーション:https://book.cakephp.org/3/ja/phinx/migrations.html

4.初期データの投入

シーディングという機能を使用することにより初期データを簡単にデータベースに投入できます。

CakePHP公式シーディング:https://book.cakephp.org/3/ja/phinx/seeding.html

SamplesSeed.php が cakephp/config/Seeds に生成されます。

samplesseeder生成

今回のsampleテーブルidとnameのみで構成しているため以下のデータを投入します。

seedname

samplesテーブルにデータが投入されたことがわかります。

seedermysql

最後に

今回はsampleテーブルを作成しidとnameのカラムでざっくりとマイグレーションの使用方法を紹介しました。

マイグレーションを行うことにより全ての変更はファイルに保存されるので開発者全員が同じデータベースで作業できたりするメリットもあります。

今回は紹介できなかったマイグレーションの追加,変更,削除については後日記事にしようと思います。

一覧へ戻る