Laravelのインストール
- composerがインストールされているか確認
ターミナル
composer --version
- Laravelプロジェクトの作成
composer create-project --prefer-dist laravel/laravel larapg
- cdコマンドで作成したプロジェクトのフォルダ内へ移動。
cd larapg
- 設定
config/app.php
// 70行目
'timezone' => 'Asia/Tokyo',
// 109行目
'faker_locale' => 'ja_JP',
PostgreSQLのインストール
- homebrewがインストールされてるか確認
brew -v
- pgsqlのインストール
brew install postgres
- 文字コード設定
initdb /usr/local/var/postgres -E utf8
PostgreSQLへ接続
- pgsqlを起動
postgres -D /usr/local/var/postgres
- 上記コマンドを起動したまま、別のターミナルを開く。
- pgsqlに接続
psql postgres
- ユーザーを作る
createuser -P admin
- ユーザー一覧で確認
psql -q -c'select * from pg_user' postgres
PostgreSQLでDB生成
- DB [friends] を作る
createdb friends
- DB一覧で確認
\l
- Postico をインストール
- 起動して下の画像のように設定して、Connectをクリック。
マイグレーションを設定
php artisan make:model Models/Friend -m
- マイグレーション(
database/migrations/create_friends_table
)を、モデル(app/Models/Friend.php
)と一緒に作成します。
create_friends_table.php
Schema::create('friends', function (Blueprint $table) {
$table->bigIncrements('id'); // ID
$table->string('name', 30); // 名前。30文字以内。
$table->Integer('age')->nullable(); // 年齢。NULLでもOK。
$table->timestamps();
});
- 各テーブルのスキーマを上記のように編集します。
- カラム コマンド・修飾子一覧
PostgreSQLとLaravelを接続
.env(隠しファイル)
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=friends
DB_USERNAME=admin
DB_PASSWORD=
- Laravelの隠しファイルである .envファイルを上記のように変更。
php artisan migration
- 上記コマンドで、マイグレーションの実行します。
- Posticoを更新して、マイグレーションが通ったか確認します。
- 下の画像のように、DBの中で friendsテーブルが生成されているか確認してください。
- マイグレーションを修正したい場合は、下記コマンドを実行して、もう一度
php artisan migrate
を実行する。
php artisan migration:rollback
ダミーデータの設定
- カラムに、自動でデフォルト値を設定してくれるFactoryを使用します。
php artisan make:factory FriendFactory
database/factories/FriendFactory.php
use App\Models\Friend; // Friend のクラスを呼び出す
~
$factory->define(Friend::class, function (Faker $faker) {
return [
'name' => $faker->name, // 名前
'age' => $faker->numberBetween(18,60) // 年齢、18歳〜60歳
];
});
- 他にも
->firstName
や->city
、->date
などがあります。 - faker一覧
php artisan make:seeder FriendsTableSeeder
database/seeds/FriendsTableSeeder.php
use App\Models\Friend; // Friend のクラスを呼び出す
~
public function run()
{
factory(Friend::class, 15)->create(); // friendモデルを使って、15個のランダムデータをDBに保存する。
}
database/seeds/DatabaseSeeder.php
public function run()
{
$this->call(FriendsTableSeeder::class);
}
ダミーデータをDBへインサート
composer dump-autoload
php artisan migrate:fresh --seed
- Posticoを確認して、下の画像の様になっていたら成功です。