{"id":16367900,"url":"https://github.com/treetips/spring-boot-flyway-jooq-example","last_synced_at":"2026-04-26T20:32:15.205Z","repository":{"id":150606766,"uuid":"55080364","full_name":"treetips/spring-boot-flyway-jooq-example","owner":"treetips","description":"Spring boot + Spring Batch + Flyway + Jooq generator + Jooqのサンプルプロジェクトです。","archived":false,"fork":false,"pushed_at":"2016-03-30T17:56:33.000Z","size":24,"stargazers_count":1,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-24T00:09:11.456Z","etag":null,"topics":["flyway","java","jooq","spring-boot"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/treetips.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2016-03-30T16:49:30.000Z","updated_at":"2017-12-19T02:17:40.000Z","dependencies_parsed_at":"2023-06-12T00:45:32.060Z","dependency_job_id":null,"html_url":"https://github.com/treetips/spring-boot-flyway-jooq-example","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/treetips/spring-boot-flyway-jooq-example","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/treetips%2Fspring-boot-flyway-jooq-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/treetips%2Fspring-boot-flyway-jooq-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/treetips%2Fspring-boot-flyway-jooq-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/treetips%2Fspring-boot-flyway-jooq-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/treetips","download_url":"https://codeload.github.com/treetips/spring-boot-flyway-jooq-example/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/treetips%2Fspring-boot-flyway-jooq-example/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32312276,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T19:15:34.056Z","status":"ssl_error","status_checked_at":"2026-04-26T19:15:15.467Z","response_time":129,"last_error":"SSL_read: 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":["flyway","java","jooq","spring-boot"],"created_at":"2024-10-11T02:51:08.291Z","updated_at":"2026-04-26T20:32:15.199Z","avatar_url":"https://github.com/treetips.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"spring-boot-flyway-jooq-example\n====\n\nSpring boot + Spring batch + Flyway + Jooqのサンプルプロジェクトです。\n\n## Description\n\nSpring batchを起動し、javaからFlywayでマイグレーションを行い、マイグレーション結果を元にJooq generatorで各モデルクラスを自動生成し、JooqのDSLで各種SQLのテストを行います。javaから任意のタイミングでFlywayとJooq generatorを呼び出しているサンプルとなっています。\n\nMySQLについてはdocker-composeで起動し、起動スクリプトも同梱しています。\n\n### バージョン\n\n- Spring boot version 1.3.3.RELEASE\n- Spring batch version 1.3.3.RELEASE\n- Flyway version latest\n- Jooq version 3.7.3\n- MySQL version 5.7\n- Docker-engine version latest\n- Docker-compose version latest\n\n### プロジェクト構造\n\n```\nspring-boot-flyway-jooq-example\n　┣ master（gradle関連・docker関連）\n　┗ base（親プロジェクト）\n　　　┗ batch（バッチプロジェクト）\n```\n\n## Requirement\n\n### docker + MySQLサーバ\n\nMySQLサーバが無い場合は、[docker toolbox](https://www.docker.com/products/docker-toolbox)等でdocker環境を構築して下さい。MySQLコンテナの起動等は後述で行うので、docker toolboxのインストールのみ行って下さい。\n\n### IDE\n\n- [Spring Tool Suite](https://spring.io/tools/sts)\n- STSにGradle Supportをインストール\n\n## Install\n\n**macの場合はdockerのマウントがホームディレクトリ配下でないと動かない** ので、ホームディレクトリ以下でcloneして下さい。\n\n### Checkout project\n\n```bash\n# ホームディレクトリにcd\ncd\n# checkout\ngit clone git@github.com:treetips/spring-boot-flyway-jooq-example.git\n```\n\n### STS に Gradle Supportをインストール\n\nSTS -\u003e Dashboard -\u003e ManageのIDE EXTENSIONS -\u003e Findで「gradle」で検索 -\u003e Gradle Supportをインストール。\n\n### STS でプロジェクトをimmport\n\nSTS -\u003e File -\u003e Import -\u003e General -\u003e Existing projects into workspace で\n\n## Usage\n\n### MySQLサーバの起動（MySQLサーバが無い場合）\n\nまず、docker-machineでmysql専用ホストを生成し、起動します。\n\n```bash\ndocker-machine create -d virtualbox mysql\ndocker-machine start mysql\n```\n\nmysqlホストが起動したら、以下の起動スクリプトでdocker上のMySQLサーバをデーモン起動します。\n\n```bash\ncd master/docker/\n./start_container.sh\n```\n\n### MySQLの接続先を変更\n\nMySQLサーバのIPを調べます。dockerでMySQLを起動した場合は、以下でIPを確認できます。\n\n```bash\ndocker-machine ip mysql\n```\n\nMySQLのportは3357ですが、変更したい場合は master/docker/docker-compose.ymlを開き、3357を任意のポートに変更して下さい。\n\n```yml\nports:\n  - 3357:3306\n```\n\nこれでMySQLのIPとportが解ったので、 batch/src/main/resources/config/application.yml を開き、以下を任意の接続情報に変更して下さい。\n\n```yml\n    url: jdbc:mysql://172.16.53.133:3357/${spring.datasource.schema}?useUnicode=yes\u0026characterEncoding=UTF-8\u0026autoReconnect=true\u0026verifyServerCertificate=false\u0026useSSL=false\n```\n\ndockerでMySQLを起動した場合は、docker-machine create 実行毎にIPが変わるため、任意に設定して下さい。\n\n### Javaの実行\n\n続いてjavaを実行します。\n\n/batch/src/main/java/com/github/treetips/GenerateMain.java を実行すると、以下の順に処理が実行されます。\n\nSpring batch -\u003e flyway -\u003e jooq generation -\u003e jooq dsl\n\n### dockerのスクリプト\n\nmaster/docker にあるファイルは、それぞれ以下の通りです。\n\n\u003cdl\u003e\n\u003cdt\u003e# connect_mysql.sh\u003c/dt\u003e\u003cdd\u003edocker上のMySQLサーバにリモート接続します。\u003c/dd\u003e\n\u003cdt\u003e# start_container.sh\u003c/dt\u003e\u003cdd\u003eMySQLのコンテナをデーモン起動します。\u003c/dd\u003e\n\u003cdt\u003e# stop_container.sh\u003c/dt\u003e\u003cdd\u003eデーモン起動中のMySQLコンテナを終了します。\u003c/dd\u003e\n\u003cdt\u003e# destroy_container.sh\u003c/dt\u003e\u003cdd\u003eMySQLコンテナを終了し、破棄します。コンテナが削除されるため、MySQLのデータは全て削除されます。\u003c/dd\u003e\n\u003cdt\u003e# recreate_container.sh\u003c/dt\u003e\u003cdd\u003eMySQLコンテナを終了し、破棄し、新たにMySQLのコンテナをデーモン起動します。コンテナが削除されるため、MySQLのデータは全て削除されます。\u003c/dd\u003e\n\u003c/dl\u003e\n\n## Licence\n\n[MIT](https://github.com/tcnksm/tool/blob/master/LICENCE)\n\n## Author\n\n[tcnksm](https://github.com/treetips)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftreetips%2Fspring-boot-flyway-jooq-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftreetips%2Fspring-boot-flyway-jooq-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftreetips%2Fspring-boot-flyway-jooq-example/lists"}