CakePHP(v3.x)、MigrationでBLOBなカラムを追加する。

今回はMigrationでファイルをバイナリデータとして保存しておくためのカラムをMigrationで追加していく方法をまとめていきます。

use Phinx\Db\Adapter\MysqlAdapter;
use Migrations\AbstractMigration;

class CreateDocumentTable extends AbstractMigration
{

    public function up()
    {

        $this->table('pictures', [
            'comment' => '同封物'
        ])
            ->addColumn('file', 'blob', [
                'comment' => 'バイナリデータ',
                'default' => null,
                'limit' => MysqlAdapter::BLOB_MEDIUM,
                'null' => false,
            ])
            ->create();
    }

    public function down()
    {

        $this->table('pictures')->drop()->save();
    }
}

ここでMysqlAdapterを使ってBLOBを利用するのがポイントです。 migration_diffでbakeしてやると、binaryでカラムを作ろうとするので適宜調整してください。