以前デプロイ用に準備したEC2環境にSQLiteを導入する方法をまとめます。
データベースは開発環境で使用したsqlite設定をそのまま使用できるので、環境変数を変えるのみの対応がメインです。
バックエンド: Laravel
フロントエンド: React
事前準備
以下の作業は完了しているものとします。詳細はこちらを参照してください。
- インスタンスの作成
- Nginxのセットアップ
- Reactのセットアップ
- Laravelのセットアップ
データベース接続先の設定
まずEC2上でsqliteファイルを作成します。
Zsh
# /home/ec2-user/gymcal/backend/database
$ touch database.sqlite
次に.envに作成したsqliteファイルのパスを設定します。
.env
DB_CONNECTION=sqlite
DB_DATABASE=/home/ec2-user/gymcal/backend/database/database.sqlite
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=laravel
# DB_USERNAME=root
# DB_PASSWORD=
データベースの準備
コマンドを実行してデータベースを作成します。
Zsh
$ php artisan migrate
INFO Running migrations.
2024_08_10_094553_create_elements_table ...................................... 2.07ms DONE
Zsh
$ php artisan db:seed
INFO Seeding database.
Database\Seeders\ElementsTableSeeder .......................................... RUNNING
Database\Seeders\ElementsTableSeeder ....................................... 18 ms DONE
sqlite3で確認します。
Zsh
sudo yum install sqlite sqlite-devel
バージョンが確認できれば完了です。
Zsh
$ sqlite3 --version
3.40.0 2023-06-02 12:56:32 00a1256aa915eba233626a380102f8e74157cde64f0cd68731893b588c97alt1
Zsh
[ec2-user@ip-172-31-38-157 backend]$ sqlite3 database/database.sqlite
sqlite> select * from elements;
1|1|1|倒立から下ろして(開脚前挙or脚前挙)支持(2秒)||1|1||
2|2|1|脚上挙支持(2秒)||2|1||
データが入っていることを確認できました。
動作確認
NginxとLaravelを起動します。
Zsh
sudo systemctl start nginx
cd backend
php artisan serve --host=0.0.0.0 --port=8000
APIの接続先をパブリックIPアドレスに修正してからReactをビルドします。
Zsh
cd frontend
npm run build
serve -s build
パブリックIPアドレスに接続すると以下のようにデータが取得できていることが分かります。
まとめ
以上がLaravelのSQLiteをEC2で使用する方法でした。
本番環境と開発環境でsqliteファイルを分けている点に注意が必要です。
コメント