Config JPA (Kotlin)
Overview
Executar setup determinístico da infraestrutura JPA/Spring Data no backend Kotlin, com datasource configurado via application.yml, migrations Flyway, Docker Compose para Postgres e módulo de configuração de banco.
Equivalente ao config-prisma do stack TypeScript, adaptado para o ecossistema Spring Boot + JPA.
Workflow
- Confirmar que o projeto contém
build.gradle.ktsoupom.xmlcom Spring Boot. - Configurar dependências JPA/Spring Data, Flyway e driver Postgres.
- Criar/ajustar
application.ymlcom datasource, JPA e Flyway. - Criar
docker-compose.ymlpara Postgres compatível com variáveis de ambiente. - Criar migration inicial de bootstrap (Flyway
V1__bootstrap.sql). - Criar/ajustar módulo de configuração de banco (
DatabaseConfig.kt) quando necessário. - Validar que a aplicação inicia e conecta ao banco.
O que o setup garante
- Dependências em
build.gradle.kts:spring-boot-starter-data-jpapostgresql(driver)flyway-core+flyway-database-postgresql
application.ymlcom:spring.datasource.urlvia${DATABASE_URL}spring.jpa.hibernate.ddl-auto: validatespring.flyway.enabled: truespring.flyway.locations: classpath:db/migration
docker-compose.ymlcom Postgres alinhado aoDATABASE_URLdo.env.- Diretório
src/main/resources/db/migration/com migration de bootstrap. .enve.env.examplecomDATABASE_URL,JWT_SECRET.
Arquivos críticos
build.gradle.kts(oupom.xml)src/main/resources/application.ymlsrc/main/resources/application-dev.yml(opcional, para profile dev)src/main/resources/db/migration/V1__bootstrap.sqldocker-compose.yml.env/.env.example
Commands
Simular alterações (dry-run):
node config-jpa-kt/scripts/init-jpa-backend-kt.mjs --dry-run
Se instalado como submódulo:
node .agents/skills/config-jpa-kt/scripts/init-jpa-backend-kt.mjs --dry-run
Aplicar alterações:
node config-jpa-kt/scripts/init-jpa-backend-kt.mjs --apply
Criar migrations para módulos:
node config-jpa-kt/scripts/init-jpa-backend-kt.mjs --apply --module auth --module product
Customizar path do backend:
node config-jpa-kt/scripts/init-jpa-backend-kt.mjs --apply --backend-path apps/api-kt
Resources
scripts/init-jpa-backend-kt.mjs: script de setup JPA/Flyway.references/jpa-init-checklist-kt.md: checklist operacional.- Log local de execução:
.log/skills.log.
Scaffold de módulos
Para cada novo módulo de domínio, o script cria migration Flyway automaticamente com --module:
src/main/resources/db/migration/V2__create_users.sql
src/main/resources/db/migration/V3__create_products.sql
Regra de escopo
- Não incluir seeds de dados por módulo nesta etapa.
- O bootstrap de migration deve ser mínimo (tabela de bootstrap ou vazio).
- Não sobrescrever
application.ymljá configurado; apenas upsert de chaves faltantes.
References
Consultar references/jpa-init-checklist-kt.md para checklist operacional.
Consultar ../skills-standards.md para convenção global de nomenclatura (seção Kotlin).
Global Standards
- Consultar
../skills-standards.mdpara padrões globais de nomenclatura e convenções gerais entre skills.