このプロジェクトは、MySQL を使用したデータベース管理と開発のワークフローの例を提供します。
- Flyway を用いたマイグレーション管理
- tbls を用いたテーブル定義書自動生成
- LiamERD を用いたER図自動生成
- SQLフォーマッターによるコード整形
- Dockerを用いた開発環境
- mkdocs を用いた markdown → HTML 変換(GitHub Pages 用)
- husky を用いたコミット時の自動フォーマット
開発者向けガイドラインはCONTRIBUTING.mdをご参照ください。
mise を用いて開発環境をセットアップします。
以下に各種バージョンを記載しますが、最新の情報は mise.toml を参照してください。
- mise
- Node.js: v23.11.0
- Python: v3.13.3
- Poetry: Latest
- Docker および Docker Compose
以下のサイトを参照してください。
homebrew を用いてインストールする場合は以下のコマンドを実行してください。
brew install misedocker desktop は商用利用できません。
利用している OS に応じて適宜インストールしてください。
homebrew を用いてインストールする場合は以下のコマンドを実行してください。
brew install docker
brew install docker-composemkdir workspace
cd workspacegit clone https://github.com/semba-yui/sample-mysql-rdb.git
cd sample-mysql-rdbmise installpoetry installnpm installデータベース起動時、Flyway によるマイグレーションと、tbls によるテーブル定義書の自動生成が行われます。生成されたファイルは docs/schema/ 配下に出力されます。
npm run db:serveすでにデータベースが起動している場合、テーブル定義書のみを更新したいときは次のコマンドを実行します。
npm run db:schemaお使いのデータベースツールから以下の接続情報でアクセスしてください。
- DB: MySQL 8.0.41
- ユーザー名: user
- パスワード: Password
- ポート: 3306
- データベース名: sample_rdb
ER 図を生成すると docs/out/ 以下に HTML ファイルが出力されます。
npm run er:build生成された docs/schema と docs/out ディレクトリは .gitignore で管理対象から除外されています。
npm run er:servenpm run docs:buildnpm run docs:serve利用が完了したら、以下のコマンドで docker コンテナを停止してください。
npm run db:downGitHub Actions の Build and Deploy MkDocs per Branch ワークフローでは、
テーブル定義書 (excel/schema.xlsx) を自動生成し、Artifacts にアップロードしています。
ワークフロー実行結果ページの Artifacts から excel-<branch_name> という名前でダウンロードできます。
本プロジェクトは MIT License の下で公開されています。