{"id":15454545,"url":"https://github.com/dodonki1223/eroge_release_db","last_synced_at":"2026-01-19T18:32:06.737Z","repository":{"id":39692665,"uuid":"237862869","full_name":"dodonki1223/eroge_release_db","owner":"dodonki1223","description":"Railsにて美少女ゲームのブランド、ゲーム情報、出演声優、声優情報などを管理するためのデータベースバージョン管理ツール","archived":false,"fork":false,"pushed_at":"2023-03-08T20:31:10.000Z","size":2488,"stargazers_count":2,"open_issues_count":17,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-06T17:52:17.514Z","etag":null,"topics":["circleci","docker","docker-compose","ec2","port-forwarding","postgresql","rails","rds","ruby","slack","vpc"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dodonki1223.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-03T01:19:09.000Z","updated_at":"2023-01-31T17:52:54.000Z","dependencies_parsed_at":"2024-12-20T05:20:57.548Z","dependency_job_id":"20bcb2f7-b566-47fa-9822-cba6543f0a22","html_url":"https://github.com/dodonki1223/eroge_release_db","commit_stats":{"total_commits":204,"total_committers":3,"mean_commits":68.0,"dds":0.3431372549019608,"last_synced_commit":"8f4e6cb9c010164deb2ad82109c966e526abca78"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dodonki1223/eroge_release_db","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dodonki1223%2Feroge_release_db","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dodonki1223%2Feroge_release_db/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dodonki1223%2Feroge_release_db/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dodonki1223%2Feroge_release_db/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dodonki1223","download_url":"https://codeload.github.com/dodonki1223/eroge_release_db/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dodonki1223%2Feroge_release_db/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28580206,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T18:29:59.827Z","status":"ssl_error","status_checked_at":"2026-01-19T18:29:40.878Z","response_time":67,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["circleci","docker","docker-compose","ec2","port-forwarding","postgresql","rails","rds","ruby","slack","vpc"],"created_at":"2024-10-01T22:03:55.984Z","updated_at":"2026-01-19T18:32:06.722Z","avatar_url":"https://github.com/dodonki1223.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# eroge_release_db [![CircleCI](https://circleci.com/gh/dodonki1223/eroge_release_db/tree/master.svg?style=svg)](https://circleci.com/gh/dodonki1223/eroge_release_db/tree/master)\n\n美少女ゲームのブランド、ゲーム情報、出演声優、声優情報などを管理するためのデータベースです\n\n![00_eroge_release_db](https://raw.githubusercontent.com/dodonki1223/image_garage/master/eroge_release_db/readme/00_eroge_release_db.png)\n\n## 概要\n\nMaster、Slave構成のRDS（PostgreSQL）内のデータベースのバージョン管理をRailsの `Active Record マイグレーション` を使用して管理します  \nデータベースの `設計` や `バージョン管理` を行うためのリポジトリでデータの挿入などは行いません（別のプロジェクトで行います）\n\n## データベースER図\n\n![eroge_release_db](https://raw.githubusercontent.com/dodonki1223/eroge_release_db/master/db/erd/eroge_release_db.png)\n\n[Rails ERD](https://github.com/voormedia/rails-erd) を使用してデータベースのER図を出力しています\n\n## 環境について\n\n使用しているローカル・本番環境について説明します\n\n### ローカル環境\n\nローカルの環境について説明します\n\n#### バージョン情報\n\n| ソフトウェアスタック | バージョン    |\n|:---------------------|:-------------:|\n| Rails                | 6.0.2.1以上   |\n| Ruby                 | 2.6.5         |\n| PostgreSQL           | 11            |\n| Bundler              | 2.1.2         |\n\n#### 開発方法\n\nDockerを使用して開発を行います  \nPCにDockerがインストールされていれば問題ないです\n\n### 本番環境\n\n本番の環境について説明します  \n本番環境はAWSにて構築したRDSになります  \n\n#### バージョン情報\n\n| ソフトウェアスタック | バージョン     |\n|:---------------------|:--------------:|\n| RDS(PostgreSQL)      | 11             |\n| 踏み台サーバー(EC2)  | Amazon Linux 2 |\n\n#### 本番環境へのデプロイ\n\nGitHubのmasterブランチが更新された時、CircleCIで静的コード解析、テストが通ったらポートフォワーディングを使用してRDSに接続しRailsのマイグレーションを実行することでPostgreSQLのデータベースを更新します  \n\n**masterブランチ以外の更新時はマイグレーションは実行されません**\n\n## 環境構築\n\n環境構築のために `AWS`、`CircleCI`、`Slack` の環境構築が必要です  \nすごく長いので別リンクにて確認してください\n\n### AWSの環境構築\n\nAWSではVPC、踏み台サーバー、RDSの構築を行います  \n\nAWSの環境構築にはUdemy の `手を動かしながら2週間で学ぶ AWS 基本から応用まで` の教材をすごく参考にさせて頂きました  \n現在は受講出来ないようなので作者のブログ記事の [AWS学習の0→1をサポートする講座「手を動かしながら2週間で学ぶ AWS 基本から応用まで」をUdemyでリリースしました - log4ketancho](https://www.ketancho.net/entry/2018/09/03/074115) を確認してください\n\n現在はコンソール画面で作成せずに **Terraform 化されているため、基本的には Terraform で作成することをオススメします！**\n\n#### Terraform 環境構築\n\nTerraform 化されたため、 Terraform の tfstate ファイルを管理させる S3 を作成します  \ntfstate を管理させるバケットとバケット作成コマンドを実行する profile 名を指定して実行させます\n\n```shell\n$ bash bin/init_s3.sh\n\ntfstateを格納するS3バケット名を入力して下さい: eroge-release-db\nS3バケット作成で使用するprofile名を入力してください: terraform\neroge-release-dbの作成を行います\neroge-release-dbにバージョンニングを有効化に成功しました\neroge-release-dbにサーバー側の暗号化を有効化に成功しました\neroge-release-dbのアクセスの変更に成功しました\n```\n\n- #### [VPC構築手順書](https://github.com/dodonki1223/eroge_release_db/blob/master/documents/VPC_CONSTRUCTION.md)\n\n![01_eroge_release_vpc](https://raw.githubusercontent.com/dodonki1223/image_garage/master/eroge_release_db/readme/01_eroge_release_vpc.png)\n\n- #### [踏み台サーバー構築手順書](https://github.com/dodonki1223/eroge_release_db/blob/master/documents/STEPPING_STONE_SERVER_CONSTRUCTION.md)\n\n![02_stepping_stone_server](https://raw.githubusercontent.com/dodonki1223/image_garage/master/eroge_release_db/readme/02_stepping_stone_server.png)\n\n- #### [RDS(Master/Slave構成)構築手順書](https://github.com/dodonki1223/eroge_release_db/blob/master/documents/DB_CONSTRUCTION.md)\n\n![03_eroge_release_db_rds](https://raw.githubusercontent.com/dodonki1223/image_garage/master/eroge_release_db/readme/03_eroge_release_db_rds.png)\n\n### CircleCIの環境構築\n\nCircleCIでは静的コード解析、テストを行い、成功した場合にRDSへポートフォワーディングで接続してマイグレーションを実行します  \nまたマイグレーションを実行するかどうか・マイグレーションの実行結果をSlackに通知する仕組みもあります\n\n- #### [CircleCIの環境構築](https://github.com/dodonki1223/eroge_release_db/blob/master/documents/CIRCLE_CI_CONSTRUCTION.md)\n\n![04_circleci_projects](https://raw.githubusercontent.com/dodonki1223/image_garage/master/eroge_release_db/readme/04_circleci_projects.png)\n\n### Slackの環境構築\n\nSlackではマイグレーションを実行するかどうかの承認通知、マイグレーション完了通知を行います\n\n- #### [Slackの環境構築](https://github.com/dodonki1223/eroge_release_db/blob/master/documents/SLACK_CONSTRUCTION.md)\n\n| マイグレーション成功時                                                                                                                              | マイグレーション失敗時                                                                                                                              |\n|:----------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------:|\n| ![05_notify_deploy_success](https://raw.githubusercontent.com/dodonki1223/image_garage/master/eroge_release_db/readme/05_notify_deploy_success.png) | ![06_notify_deploy_failure](https://raw.githubusercontent.com/dodonki1223/image_garage/master/eroge_release_db/readme/06_notify_deploy_failure.png) |\n\n## 開発\n\nローカルで開発を行う方法を説明します  \n\n### 開発ができる状態にする\n\n下記のコマンドを実行すれば開発を行うことができます\n\n```shell\n$ docker-compose run --rm runner\n```\n\n実行後、下記のような状態になれば大丈夫です\n\n![07_local_development_start](https://raw.githubusercontent.com/dodonki1223/image_garage/master/eroge_release_db/readme/07_local_development_start.png)\n\n︙  \n︙  \n︙  \n\n![08_local_development_end](https://raw.githubusercontent.com/dodonki1223/image_garage/master/eroge_release_db/readme/08_local_development_end.png)\n\n### 開発方法\n\n[Railsガイド](https://railsguides.jp/) などの以下のドキュメントを参考にマイグレーションファイルを作成していき開発を行っていきます\n\n- [2 マイグレーションを作成する](https://railsguides.jp/active_record_migrations.html#%E3%83%9E%E3%82%A4%E3%82%B0%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B)\n\n\n### SchemaSpy を使用して定義を確認する\n\nSchemaSpy でファイルを出力し、localhost:8080 にアクセスすることでデータベースの定義を見ることができます\n\n```shell\n$ docker-compose run --rm schemaspy \u0026\u0026 docker-compose up schemaspy_web\n```\n\n### インフラ構成を変更する\n\n./terraform/components のフォルダにある程度の粒度で分割されています  \n基本的には以下の単位で開発を行います\n\n- terraform/components/network\n- terraform/components/bastion\n- terraform/components/eroge-release\n\nまずは network のフォルダに入りそこで `terraform apply` してください  \nbastion, eroge-release は network の component に依存しているため先に network component を先にデプロイしてないと開発ができません\n\n基本的には以下のコマンド群を使用して開発します\n\n```shell\n# 作成するインフラを確認する\n$ terraform plan -parallelism=30\n\n# 実際にインフラを適用する\n$ terraform apply -parallelism=30\n```\n\n### 開発環境を削除する\n\nコンテナ、イメージ、ボリューム、ネットワークをすべて一括で削除します\n\n```shell\n$ docker-compose down --rmi all --volumes\n```\n\n参考記事：[《滅びの呪文》Docker Composeで作ったコンテナ、イメージ、ボリューム、ネットワークを一括完全消去する便利コマンド - Qiita](https://qiita.com/suin/items/19d65e191b96a0079417)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdodonki1223%2Feroge_release_db","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdodonki1223%2Feroge_release_db","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdodonki1223%2Feroge_release_db/lists"}