Laravel体験記:データベース
Laravel体験記:データベース
SQLiteを使う
cd database/
sqlite3 database.sqlite
これでSQLiteファイルができるようだ。
あとはcreatetableなどしていく。
config/database.php
SQLiteを使うように、Laravelの設定を変更
'default' => env('DB_CONNECTION', 'sqlite'),
.env
.envファイルに入っている環境変数も修正しないといけないらしい。
DB_CONNECTION=sqlite
DB_DATABASE=homested
DB_DATABASEは消すこと。消さないと、
Database does not exist.
と怒られ続ける。これで30分はつまった。DB_DATABASEにフルパス入れても怒られた。消さないとダメ。
DBクラスを使う
DB::select('select * from テーブル名');
コントローラからでも使える。
DB::insertとDB::updateももちろんある。
クエリビルダ
必要性を感じなかったのでパス。
マイグレーション
php artisan make:migration create_people_table
作られたファイルはdatabaseフォルダにあるようだ。
こんなのができてた。
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreatePeopleTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('people', function (Blueprint $table) {
$table->bigIncrements('id');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('people');
}
}
upはテーブルを生成する時に使うらしい。downは削除。
downとか使うときあるのだろうか。
public function up()
{
Schema::create('people', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('mail');
$table->integer('age');
$table->timestamp();
});
}
こうなった。
stringがTEXT型になるのだろうか。
マイグレーションの適用
php artisan migrate
疑問
-
Master/Slave構成にするときはdatabase.phpをどういじればええんやろうか。
-
Controllerから直接SQL発行してたけど、モデル的なクラスにもたせたい場合はどうしたらいいのだろう。
-
マイグレーション、varchar(255)とかはどうやるんだろう。
-
マイグレーションって、もしカラムを追加したら勝手に追加されるってことだろうか。だとしたら、意図せず高負荷になっちゃうときありそう。
-
マイグレーションって一人で作る個人サービスにはいらなそう。