-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
545 additions
and
50 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
--- | ||
title: LaravelのDB設計って今どうなってん? | ||
tags: | ||
- Laravel | ||
- Database | ||
- スキーマ | ||
private: false | ||
updated_at: '2024-02-02T15:40:25+09:00' | ||
id: 413e8e87bedb4b75225b | ||
organization_url_name: null | ||
slide: false | ||
ignorePublish: false | ||
--- | ||
|
||
|
||
|
||
# 目次 | ||
[1. マイグレーションファイル多すぎ](#1-マイグレーションファイル多すぎ) | ||
[2. スキーマファイル作れるらしい](#2-スキーマファイル作れるらしい) | ||
[3. これでやっと](#3-これでやっと) | ||
|
||
# 1. マイグレーションファイル多すぎ | ||
Laravelに限らず、バックエンド系フレームワークのマイグレーションファイルって多すぎますよね。僕のようにインフラ面が分からなすぎるために、ソースコードからDB設計を把握するしかない人間もいるんですよね。 | ||
Railsであれば`schema.rb`ファイルとかいう**神ファイル**があるので問題ないのですが、Laravelってそういうファイルがないから時々どころか相当な頻度で困ることがあるんです。何のカラムを持っているのか分からないからマイグレーションファイルを見にいってという労力を毎回使ってたんです。 | ||
|
||
# 2. スキーマファイル作れるらしい | ||
|
||
これが当たり前だと思っていたのですが、ふと調べてみたのです。`「Laravel Schema」`でググってみました。すると、**スキーマ系のファイル作れるけど今まで何してたの**と言わんばかりにあるコマンドのことが大量に出てきたんです。それが、 | ||
|
||
```shell:スキーマを作成 | ||
php artisan schema:dump | ||
``` | ||
|
||
これさえ実行してしまえば、こんなSchemaファイルができてしまうんです。 | ||
|
||
```sql:database/schema/*-schema.sql | ||
: | ||
: | ||
: | ||
DROP TABLE IF EXISTS `members`; | ||
/*!40101 SET @saved_cs_client = @@character_set_client */; | ||
/*!50503 SET character_set_client = utf8mb4 */; | ||
CREATE TABLE `members` ( | ||
`id` char(26) COLLATE utf8mb4_unicode_ci NOT NULL, | ||
`image_id` char(26) COLLATE utf8mb4_unicode_ci DEFAULT NULL, | ||
`name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, | ||
`last_name` varchar(25) COLLATE utf8mb4_unicode_ci NOT NULL, | ||
`first_name` varchar(25) COLLATE utf8mb4_unicode_ci NOT NULL, | ||
`address` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, | ||
`email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, | ||
`email_verified_at` timestamp NULL DEFAULT NULL, | ||
`password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, | ||
`created_at` timestamp NULL DEFAULT NULL, | ||
`updated_at` timestamp NULL DEFAULT NULL, | ||
PRIMARY KEY (`id`), | ||
UNIQUE KEY `members_email_unique` (`email`), | ||
KEY `members_image_id_foreign` (`image_id`), | ||
CONSTRAINT `members_image_id_foreign` FOREIGN KEY (`image_id`) REFERENCES `images` (`id`) ON DELETE SET NULL, | ||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; | ||
: | ||
: | ||
: | ||
``` | ||
|
||
# 3. これでやっと | ||
長年(数ヶ月)の「Railsは`schema.rb`ファイルあって良いなあ」案件が解消されました。 | ||
また一段階、Laravelのことを好きになれた気がします。今日から沢山スキーマファイル作ろうと思います。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
--- | ||
title: Laravelのテストコードを書いてみた | ||
tags: | ||
- Laravel | ||
- PHPUnit | ||
- テスト | ||
private: true | ||
updated_at: null | ||
id: null | ||
organization_url_name: null | ||
slide: false | ||
ignorePublish: false | ||
--- | ||
|
||
# 目次 | ||
|
||
[1. 前書き](#1-前書き) | ||
[2. 知識の下準備](#2-知識の下準備) | ||
[3. 実装](#3-実装) | ||
|
||
# 1. 前書き | ||
|
||
# 2. 知識の下準備 | ||
|
||
https://laravel.com/docs/10.x/testing#main-content | ||
|
||
https://qiita.com/shindex/items/4f28f8e06ef2d10e8d2b | ||
|
||
# 2-1. ディレクトリ構成 | ||
|
||
|
||
|
||
# 2-2. テストファイルの作成と実行 | ||
|
||
以下のコマンドを叩いて、テスト用のファイルを生成します。 | ||
**Feature**に作成する場合は1行目、**Unit**に作成する場合は2行目のコマンドを実行します。 | ||
|
||
```bash | ||
php artisan make:test ファイル名 | ||
php artisan make:test ファイル名 --unit | ||
``` | ||
|
||
次に以下のコマンドを叩くことで、テストを実行することができます。 | ||
|
||
```bash | ||
php artisan test | ||
``` | ||
|
||
Paratestというライブラリを使用すると、テストを並列実行させ、テスト時間を短くすることができます。 | ||
|
||
```bash | ||
composer require brianium/paratest --dev | ||
php artisan test --parallel # --parallelオプションを付与すると並列実行 | ||
``` | ||
|
||
# 2-3. テストコードの書き方 | ||
|
||
# 3. 実装 | ||
|
||
# 3-1. サンプル |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.