skillup

技術ブログ

Database PHP

cakePHPでのマイグレーション

投稿日:2015年11月26日 更新日:

開発を続けているとデータベースのカラムの構造が変更するってことはしょっちゅうですが、管理がいい加減だとメンバー間でテーブルの構造が変わっていたり、本番と開発で違ってくるなどのトラブルが続出します。

そういったテーブルの構造を管理する手法の1つに「マイグレーション」というものがあります。

まだ学習段階ですが、データベースのバージョン管理のようなものかなという気がします。

cakePHPで今回そのマイグレーションに取り組んだのでメモをしておきます。

状況としてすでにリモートのサーバーにソースとDBがあり、ローカルのDBの変更を反映させたい状況だとします。

インストール

プロジェクトフォルダ直下(app)で

と入力。

と表示されればOKです。

マイグレーションの作成

最初はまだデータベースの履歴自体を登録していないので、その登録作業を行います。

YesNo型式でいろいろ聞かれるが全てYesでOK

と聞かれるが、これはマイグレーション(1つの履歴情報)のファイル名を聞かれています。

ここで入力してあげると新しいファイルがConfig/Migration直下に作成されてます。

マイグレーションの見方

と入力してあげるとバージョン名がでる。

またスキーマ(ファイル情報を格納しておくようなファイル?)の更新も合わせて行う


のようなメッセージが出力されます。

Config/Schemaの下にschema.phpというファイルが存在しています。

リモートサーバーへの反映

リモートサーバーにログインし、

と入力。

先ほど登録したマイグレーションの履歴情報が出力され、一番最後に下記のようなメッセージがでます。

ここで番号を入力してあげればOK

ちなみに今のデータベースのバージョン情報を見たい場合は

で見れます。ここでデータベースのバージョンが上がっていればOKです。

まだわからないことが山ほどありますが、とりあえず最初はこんなもんで。

参考リンク

Git submodule の基礎

CakePHP2系でマイグレーションを利用する方法

-Database, PHP
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

SQL サブクエリ

前回の問題をサブクエリを使って解きます。前年度の売上を出すのが一番難しいので、それを出す方法です。MySQLだとそもそも分析関数が存在しないので・・ [crayon-650d0f6c730be6323 …

no image

cakePHPのajax

cakePHPのajaxですが、javascriptはいいとして、コントローラー側をどう実装するのか気になる方は多いでしょう。 cakeの画面は基本的にコントローラーにアクセスした後は通常はビューに遷 …

no image

SQL基礎 case式について

case式に関して。 集約系の関数では複雑な処理を一気に行うことができる。 case式は1列のみ有効。複数の列に対して行うことはできない。 case ~ when ・・・thenではwhenが評価され …

no image

データベースアンチパターン・グレーパターンまとめ

本で勉強したものと自分で個人的に経験したことのまとめ Contents1 値渡しと参照渡しの混同2 型の制約が弱い3 変更していいデータ、していけないデータ4 参照系と履歴系のデータを区別する5 リレ …

no image

浮動小数点に関して

金額計算なんかでfloatを使うと誤差が出るっていうのは基礎的な話ではありますが、背景知識を含めて理解しておこうと思ったのでメモります。 Contents1 float,doubleでの誤差2 金額の …

アーカイブ