Phinx マイグレーション
######################

Phinx は、データベースのマイグレーションを管理するためのスタンドアロンのコマンドラインツールです。
CakePHP の公式 Migrations プラグインはこのツールに基づいています。

Phinx は、あなたの PHP アプリケーションのデータベースマイグレーションを超簡単に管理できます。
5分以内に、Composer を使用して Phinx をインストールし、最初のデータベースマイグレーションを作成できます。
Phinx は、データベース ORM システムやアプリケーションフレームワークを使わずに、マイグレーションします。

はじめに
============

良い開発者は常に SCM システムを使ってコードをバージョン管理します。それでは、なぜ、
データベーススキーマについても同じことをしないのでしょうか？

Phinx は、開発者がデータベースを明確かつ簡潔な方法で変更および操作できるようにします。
これは手作業で SQL を書くことを避け、代わりに PHP コードを使用してマイグレーションを作成するための
強力な API を提供します。開発者は、好みの SCM システムを使用して、これらのマイグレーションを
バージョン管理することができます。これにより、異なるデータベースシステム間で Phinx のマイグレーションを
移植可能にします。Phinx はどのマイグレーションが実行されたかを把握しているので、
データベースの状態については心配する必要はなく、より良いソフトウェアを構築することに
集中することができます。

ゴール
=======

Phinx は以下の目標を念頭に置いて開発されました。

* 最も普及しているデータベースベンダー間の可搬性。
* PHP フレームワークに依存しない。
* シンプルなインストール手順。
* 使いやすいコマンドライン操作。
* 他のさまざまな PHP ツール（Phing、PHPUnit）やウェブフレームワークとの統合。

インストール
=============

Phinx は、PHP の依存関係管理のためのツールである Composer を使用してインストールする必要があります。
詳しくは `Composer <https://getcomposer.org/>`_ のウェブサイトを見てください。

.. note::

    Phinx には少なくともPHP 5.4（またはそれ以降）が必要です。

Phinx をインストールするには、Composer を使用する必要があります。

.. code-block:: bash

    php composer.phar require robmorgan/phinx

適切なパーミッションを持つ ``db/migrations`` 構造に従って、プロジェクト内にフォルダーを作成します。
これは、マイグレーションファイルが存在し、書き込み可能である場所です。

今、プロジェクト内から Phinx を実行できるようになりました。

.. code-block:: bash

    vendor/bin/phinx init

