Laravel4 DB操作とマイグレーションを試す
とりあえずサーバーにmysqlをインストールしておきます。
設定を行う
app/config/database.phpのmysql配列を変更する
'mysql' => array( 'driver' => 'mysql', 'host' => 'localhost', 'database' => 'dbname', 'username' => 'username', 'password' => 'password', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ),
変更箇所は自分の環境の場合は
databaseとusernameとpassword
databaseは適当に作っておきます。
マイグレーションファイルを作成する
$ php artisan migrate:make create_template_table
今回はテーブルのひな形テーブルを作成します。
app/database/migrations/2015_01_06_184420_create_template_table.php
のパスにファイルが作成されました。
これを修正します。
<?php use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateTemplateTable extends Migration { >.../** >... * Run the migrations. >... * >... * @return void >... */ >...public function up() >...{ Schema::create('template', function($table){ $table->increments('id'); $table->string('key', 128)->unique(); $table->string('value', 256)->nullable(); $table->text('data')->nullable(); $table->timestamps(); $table->timestamp('deleted_at')->nullable(); $table->enum('active', array('0', '1'))->default('1'); }); >...} >.../** >... * Reverse the migrations. >... * >... * @return void >... */ >...public function down() >...{ Schema::drop('template'); >...} }
Schemaのコマンドは
DB:スキーマビルダー
に書かれています、ほとんど悩む事なくつくれました
マイグレーション実行
$ php artisan migrate
DBをみてみると
テーブルができました。
マイグレートのコマンドは以下の通り
php artisan list | grep migrate migrate Run the database migrations migrate migrate:install Create the migration repository migrate:make Create a new migration file migrate:publish Publish a package's migrations to the application migrate:refresh Reset and re-run all migrations migrate:reset Rollback all database migrations migrate:rollback Rollback the last database migration
直感的な動きをしますので各コマンドを試してみるのが良いと思います。
インサートしてみる
$now_timestamp = date("Y-m-d h:i:s"); DB::insert('insert into template (`key`, `value`, `created_at`, `updated_at`) values(?, ?, ?, ?)', array('template.v1', 'hogehogehogehoge', $now_timestamp, $now_timestamp));
試しにこんなクエリを作ってみました。 実行してみると
ちゃんと入っています。
Laravel今日一日ためしてみましたが、何かと機能が充実してる感じで使いやすいです。 ドキュメントもしっかり作られているので戸惑う事も少ない良フレームワークだと思います。
次はEloquent ORMを試します。