CodeIgniter3のチュートリアルをリファクタリング(4) データベースの準備

かつて、こんなにも毎日のようにブログをかいた時期ってあったっけかな?と思う@NEKOGETです。コンバンワ。
この記事はCodeIgniterアドベントカレンダーのために書きました! 23日目です!
https://qiita.com/advent-calendar/2017/code_igniter

22日目の記事は bj1024さん の「CodeIgniter3 CLI利用時の引数の挙動」でした!

さて、この記事ですが、タイトルからもわかる通り、CodeIgniter3のチュートリアルをリファクタリング(3) の続編です。

と続いて、今回はデータベースの準備です。

データベースの準備

mysqlへの接続 DBの作成

パスワードの入力

(このユーザーとパスワードはansibleで作成設定しています。)

データベースの作成

できました。

configの設定 データベース

application/config/database.phpの設定です。
これはデータベースへの接続情報ですね。

CodeIgniter3で使えるデータベースはMySQLだけではありません。
今回は私が使い慣れているからmysqlですが他に使えるデータベースは他にもあります。
config/database.phpには次のように記載がされています。

ここでは細かい解説は避けますが、情報を追えるようにリンクを貼り付けておきますね。
今回はMySQLでいきます。

Migration Classの作成

先日の記事「CodeIgniter3 migrationの話をば。」 のおさらいでもあります。

Migration Classを作ります。
application/controllers/Migrate.php
(正直もうこのControllerは先にあってもいいのではないかとさえ思います)

Configの設定

application/config/migration.php を編集します。

migrationを使用可能にして、
migrationのファイルを保存するフォルダを指定して
migrationのファイルをつくるのにtimestamp使いますを指定します。YYYYMMDDHHIISS フォーマットなので、(e.g. 20171213100537) です。
都度バージョンを指定するのは面倒なので、マイグレーションのバージョンは自動で最新にしといてね設定をtrueに変更です。

Migrationファイルを保存する場所を作る

Migrationファイルを保存する場所を作ります。configに書いた、$config[‘migration_path’] = APPPATH.’migrations/’;がそれですね。

準備ができました。

Migration ファイルの作成

手動でファイルを作るのは大変なので、コマンドで空ファイルを作っちゃいましょうか

空ファイルができました。
application/migrations/20171222051205_add_news.php
次はこのファイルを編集します。
mysql WorkBenchで作成したSQLがあります。
覚えてますか? CodeIgniter3のチュートリアルをリファクタリング(1) で作ったあれです。設計したからこそこの時点でSQLが存在してるわけですよねー。

これを元に作ります。
( しまった…. コメントを付けるのを忘れていました。 )

MySQL WorkBenchで作成した場合にはDB名がcreate文についちゃってますので、削除しました。あとはそのままのSQLを使うことにします。
create table時のコメントはとても重要です。つけておきましょう。
MySQL WorkBenchでコメント付けられます。生成したファイルについてなければつけてから、SQLを再度作成すると良いですね。

最初のmigrateファイルができました。

Migrationの実行

データベースにテーブルができました。

ロールバックについては今回の記事では省略します。
CodeIgniter3 migrationの話をば。 を参照ください。

データベースの準備ができました。

(5)へ続きます。