DB_USER=root
DB_PASS=secret
DB_NAME=gotodo
Hot-reloadingのために Air を使用しており、ソースコード(Go REST API)に変更が検出されると自動的にアプリケーションを再コンパイルし再起動します。
docker-compose up -d
docker-compose down --rmi all
sqldef を使うことで、データベーススキーマとコードベースのSQLスキーマファイルとの間の一貫性を保つことができ、スキーマのズレが生じるリスクを低減できます。簡単なTodoアプリなので sqldef に決めました。
$ docker compose exec api bash
$ mysqldef -h db -P 3306 -u root -p secret gotodo < ./internal/db/createTable.sql
mainブランチにプッシュすると、自動的にSwaggerを用いて /docs
フォルダにAPIドキュメントを生成するGitHubActionを設定しました。
GitHub Pagesでいつでも見れるようにしました。
ER図は tbls で管理し、createTable.sql
に変更がある度にgithub actionで更新しています。ファイルは /internal/db/schema
に配置してます。
gorilla/csrf を使い対策を行いました。
MIT