実は、
【備忘録】PostgreSQL & phpPgAdmin のインストール (ubuntu14) - きまブログ
FuelPHPでデータベース接続テスト - PostgreSQL編 - きまブログ
で紹介した方法だと、次のステップ
$ oil generate model ...
で生成したデータベース構築のマイグレーションファイルで、
うまくPostgreSQLへテーブル生成ができないことがわかり、
急遽、MySQLへ路線変更しますw
※ これは、ボクの技量のせいではなく、対応してないらしいです。
MySQL&phpMyAdminのインストール&設定
MySQLのインストール
$ sudo aptitude update
$ sudo aptitude search mysql
$ sudo aptitude install mysql-server
→ aptitudeでsearchしてるのは、正確なパッケージ名を確認するためです。
→ 途中、TUI (text user interface)で、rootユーザーのパスワードを要求される。
(PostgreSQLでいうところのpostgresユーザーだろう。。)
phpMyAdminのインストール
$ sudo aptitude search phpmyadmin
$ sudo aptitide install phpmyadmin
→ 途中、TUIで、apache2 or httplightの選択。もちろんapache2
→ 途中、データベースの設定するか?と聞かれたので、No
プロンプトが戻ってくると、apache2はリロードされていたので、
https://localhost/phpmyadmin/へアクセスしてみると。。できてる。。
phpPgAdminとは違い、親切設計だな。。
データベース(MySQL)の準備
基本的に、PostgreSQLの時と同様の作業をします。
phpMyAdmin操作なので、詳しく説明しなくても、
だいたい大丈夫かと思います。
1. phpMyAdminからMySQLのrootユーザーでログインする。
2. 適当な名前のMySQLユーザーを作成する。
(とりあえず権限は、全部チェックw)
3. 一旦、phpMyAdminをログアウトし、先ほど作ったユーザー名で再ログインする。
4. データベース fuel_dev を作成し、カラムを作り、テスト用のデータを入れておきます。
FuelPHPの準備 - MySQL編
db.phpの設定 - MySQL編
db.phpは、FuelPHPがデータベースへ接続する時に使う設定情報で、
基本的な情報は、/fuel/core/config/db.php が反映され、
上書きしたい情報を、/fuel/app/config/development/db.php へ書き込みます。
※ 基本的にdevelopment 環境で開発するので、とりあえずココに書き込んでおきます。
/fuel/app/config/development$ cat db.php <?php /** * The development database settings. These get merged with the global settings. */ return array( 'default' => array( 'connection' => array( 'dsn' => 'mysql:host=localhost;dbname=fuel_dev', 'username' => 'user_name', 'password' => 'user_password', ), ), );
ポイントは、ないですw
いたって、スムーズで、余計な事は各必要がなさそう。。
やっぱ、MySQLが基本みたい。。
実行結果
いままでテストで作ってきたコントローラーのメソッドに、
こんな感じでデータベースのテーブル test_tableの全レコードを読み込むようにして、
結果の配列をvar_dump()で全部出力するようにしてみると。。
public function action_dbtest() { $query = DB::select()->from('test_table')->execute(); var_dump($query); }
PostgreSQLで実行した時と同じように表示できました。
identifierがバッククオートになってます。
object(Fuel\Core\Database_Result_Cached)#23 (5) { ["_query":protected]=> string(26) "SELECT * FROM `test_table`" ["_result":protected]=> array(2) { [0]=> array(2) { ["no"]=> string(1) "1" ["name"]=> string(5) "text1" } [1]=> array(2) { ["no"]=> string(1) "2" ["name"]=> string(5) "text2" } } ["_total_rows":protected]=> int(2) ["_current_row":protected]=> int(0) ["_as_object":protected]=> bool(false) }
というわけで、次回こそ、oil generateコマンドでModelのコード自動生成?