cakephpのmigrationでsmallintのカラムを作る

phinx

cakephp3ではPhinxというツールを使って、データベースのマイグレーションを行うことができます。

型の指定において整数型は「integer」という記述をするのですが、
何も設定しないと「int」型になってしまいます。

→「int(6)」となる

もしsmallintやtinyintなど、他の整数型を指定したい場合、
MySqlであれば以下のように指定すれば良いみたいです。

→「smallint(6)」となる

MysqlAdapter::INT_SMALLは定義元を確認すると「65535」という整数でした。
この数字を直接指定してもうまく行きそうですね。意味はありませんが。

詳しくはPhinxのドキュメントをご確認ください。
http://docs.phinx.org/en/latest/migrations.html#limit-option-and-mysql

 

余談:久しぶりに放置していたブログにアクセスしたら、mysqldが落ちててビビりました。

windows8.1のvagrantにsaharaを導入する


先日の記事に続き、windowsにvagrantを導入するメモです。

ドットインストールにvagrantのレッスンがあったのでやってみたところ、
プラグインのインストールのところで躓きました。

どうもwindowsではコマンドラインからインストールできないらしい。

色々と調べてみたところ、gitからインストールする方法を見つけました。
http://numa08.hateblo.jp/entry/2013/05/19/011918
この記事に沿ってやってみます。
(以下、コマンドプロンプト(cmd.exe)で実行しています)

各種インストール確認

古い記事なので、記事よりもバージョンが上でしたが問題なかったです。
そしてgemはインストール済みでした。

bundleのインストール

これだけインストールしてなかったのでインストール。

saharaのインストール

元記事よりもバージョンが上ですが、ほぼ同じ手順で行けました。

インストール確認。

無事、インストールできた模様です。

実はここにたどり着くまでに丸2日くらい試行錯誤してました。
なんとか入ってよかったけど、windowsだと色々とめんどくさい・・

【関連記事】
windows8.1にvagrantで仮想開発環境を構築する

windows8.1にvagrantで仮想開発環境を構築する


windows8.1のPCに、VirtualBoxとVagrantを使って

仮想の開発環境を構築してみました。

いろいろと引っかかることもあったのでメモ。

基本的には以下の記事を参考に進めていきます。
http://www.webcyou.com/?p=4632

VirtualBoxのインストール

公式サイトからインストーラをダウンロードし、
言われるがままインストール。

Vagrantのインストール

こちらも同様に、公式サイトからインストーラをダウンロードして実行。

Vagrantのバージョン確認

コマンドプロンプトを起動し、以下のコマンドでバージョン確認。

ちゃんとインストールできたようです。

※ここで注意

windows8.1にMicrosoftアカウントでログインしている場合、
ユーザー名が日本語になっている場合があります。
その場合そのまま進めるとエラーになってしまうので、
いくつかのパスの設定を日本語を含まないパスに変更してあげましょう。

VirtualBoxの仮想マシンフォルダー

http://www.virment.com/change-virtualbox-folder/

「ファイル」→「環境設定」→「一般」
の順に開き、
「デフォルトの仮想マシンフォルダー」
を日本語を含まないパスに変更します。
とりあえず以下のようにしてみました。

vagrantのホームディレクトリ

http://qiita.com/sugard12/items/85b2e70c87a354675a0e

「コントロールパネル」→「システム」→「システムの詳細設定」→「環境変数」

ユーザー環境変数に以下を追加します。

こちらは以下のように指定してみました。

boxファイルインストール

パスを変更したら、boxファイルをインストール。
こちらも参考にした記事をもとにインストール。
記事にあったboxのURLの日付が新しいものがあったのでこれを選択。

しばらく待ってインストール完了。

以下のコマンドで取得済みboxを確認します。

ちゃんと取得できたみたいですね。

Vagrantfileの作成

任意の場所に、vagrant用ディレクトリを作成します。
今回は、

という名前で作成してみました。

コマンドプロンプトで、

と入力してカレントディレクトリを移動します。

そして

と入力すると、先ほど取得したcentos64のboxを使って初期化してくれます。

の中身を確認してみると「Vagrantfile」という名前のファイルができています。

仮想マシンを起動

とりあえずここまで来たら、サーバーを立ち上げてみます。

起動しない……

よく調べてみると、64bitOSで64bitの仮想環境を起動しようとする場合、
BIOSの設定が必要なんだとか。
http://qiita.com/rch850/items/ba254063df4a9ff15354

上記サイトとリンク先を参考に、BIOSの設定をなんとか変更し、もう一度チャレンジ。

今度はエラーは起きなかったです。
本当に起動したのか確認しみます。

無事起動しているようです!

念のため、本当に起動できているか確認してみます。

まずは一度立ち上げた仮想マシンをシャットダウン。

次に、Vagrantfileの以下の行のコメントを外し、もう一度起動。

いくつかインストールの確認が出ますがすべてOKにして起動を確認。

その後、puttyでログインしてみます。

サーバの鍵に関する警告が出ますが、「はい」を選択

ユーザー名とパスワードは、デフォルトで「vagrant」になっているようです。

無事ログイン完了!
ちゃんとローカルに仮想マシンが起動しているようです。
まさか、BIOSの設定までいじるとは思いませんでした。

実際開発に使うときに必要なツール類のインストールはまたの機会に。

【cakePHP】Form::inputDefaultsの位置


FormヘルパーのラベルやdivをデフォルトでOFFにしたい場合、
FormHelper::inputDefaults()が便利そう。

しかし、なぜかうまく行かない。

なんでだ……と、色々と試行錯誤して見た結果、
どうやらinputDefaultsを実行する位置がまずかったみたいです。

Form->createを実行したあとで設定するとうまくいきました。
気づいて見れば単純。