Document build-time db-kind, Gradle JDK, and env-var gotchas in the migration skill - #29
Merged
aureamunoz merged 1 commit intoJul 2, 2026
Conversation
aureamunoz
approved these changes
Jul 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
Running the
migrate-spring-to-quarkusskill on a real Spring Boot → Quarkus migration surfaced three config/build behaviours the reference docs don't currently call out. Each was a silent or confusing failure, so this adds short notes right where a migrator would look. Docs-only — 2 files, 9 insertions, no code change.references/config-map.mddb-kindis a build-time property. The map currently saysdriver-class-name → db-kind (auto-detected), and the Profiles table mapsspring.profiles.activestraight toquarkus.profile— which implies a Spring-style runtime database switch carries over. It doesn't: Quarkus fixes the JDBC driver/dialect at augmentation. With bothquarkus-jdbc-h2andquarkus-jdbc-postgresqlon the classpath, a runtime-onlyquarkus.profile=prodswaps the JDBC URL but keeps the build-time driver → boot fails withDriver does not support the provided URL. Added a warning styled after the existing "Naming strategy warning," with the fix (build with the target profile, or make proddb-kindthe default and override to H2 under%dev/%test).$PORT. Short note to bindquarkus.http.port=${PORT:8080}on platforms that inject$PORT(Heroku, Railway, Cloud Run, Fly).SPRING_PROFILES_ACTIVE → QUARKUS_PROFILErow (deployments override the profile via env) plus a note on SmallRye relaxed binding (FOO_BAR_BAZ → foo.bar-baz).modules/build-gradle.mdquarkusBuildruns augmentation inside the Gradle JVM and loads the compiled classes, socompileJavacan pass whilequarkusBuildfails withUnsupportedClassVersionErrorwhen Gradle runs on an older JDK than the code targets. Run Gradle on a JDK ≥ the target version (and use the same JDK in CI / the Docker build stage).How to verify
These are documentation notes; each maps to standard, checkable Quarkus behaviour:
db-kindbuild-time — see the Quarkus datasource guide: the db-kind/driver is resolved at build time. Reproduces asDriver does not support the provided URLwhen a profile-only DB switch is attempted with two JDBC drivers on the classpath.UnsupportedClassVersionErroratquarkusBuildeven thoughcompileJavasucceeds.$PORT— standard SmallRye Config relaxed binding and property expressions.No existing issue tracks these; opening directly as a small doc PR per the repo's norm.
AI disclosure
Drafted with Claude Code and reviewed, edited, and verified by me against a real Spring Boot → Quarkus migration where each of these issues occurred. The scoping and wording are mine, and I'll own the review iteration.