Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Duda] [Challenge Foro-hub] Problemas conectando mi base de datos

Básicamente estoy realizando el challenge de Forohub y al querer correr el programa para ver si las migrations corrian bien, me sale esto:

(el programa no tira error ni nada, pero no hace conexion con la base de datos)

Nombra varios aspectos de la base de datos como "undefined/unknown" al correr proyecto

Tambien esto:

Menciona que Flyway esta desactualizado en comparacion con MySQL y no logra encontrar las migrations al correr el proyecto

Antes de esto habia preparado las aplicaciones y actualice el MySQL workbench cuando salio la ventana, pero parece que ahora Flyway tiene problemas con eso, o al menos eso me parece...

Mis configuraciones estan asi:

application.properties:

spring.datasource.url=jdbc:mysql://localhost/forohub
spring.datasource.username=root
spring.datasource.password=${DB_PASSWORD}

spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true

server.error.include-stacktrace=never

api.security.secret=${JWT_SECRET}

pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.4.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.alura.forohub</groupId>
    <artifactId>forohub</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>forohub</name>
    <description>Challenge ForoHub</description>
    <url/>
    <licenses>
        <license/>
    </licenses>
    <developers>
        <developer/>
    </developers>
    <scm>
        <connection/>
        <developerConnection/>
        <tag/>
        <url/>
    </scm>
    <properties>
        <java.version>21</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.flywaydb</groupId>
            <artifactId>flyway-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.flywaydb</groupId>
            <artifactId>flyway-mysql</artifactId>
        </dependency>
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>com.auth0</groupId>
            <artifactId>java-jwt</artifactId>
            <version>4.4.0</version>
        </dependency>
        <dependency>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
            <version>2.7.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-test</artifactId>
            <version>6.4.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

El orden o el nombre tampoco parecen estar mal:

src>main>resources>db.migration

Aparte de esto, en MySQL Workbench tengo una conexion llamada "BD_Local" (con root y localhost:3306 como venia por defecto) y dentro tiene una schema llamada "forohub", la cual solo tiene la tabla "flyway_schema_history" ya que eso si lo crea, pero nada mas, ni siquiera detecta como "success = 0" cuando intento corro el programa.

1 respuesta

¡Hola Allan, espero que estés bien!

Entiendo que estás teniendo problemas al intentar conectar tu base de datos al ejecutar el programa del challenge Forohub. Parece que el problema está relacionado con Flyway y la configuración de la base de datos.

Después de revisar detenidamente tus configuraciones, parece que la URL de la base de datos en el archivo application.properties no especifica el puerto de la base de datos.

Intenta modificar la URL de la base de datos en el archivo application.properties para que incluya el puerto de MySQL y también la línea del driver MySQL, así puedes integrar la base de datos en tu proyecto, por ejemplo:

spring.datasource.url=jdbc:mysql://localhost:3306/forohub
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

Además, asegúrate de que la versión de MySQL que estás utilizando sea compatible con la versión de Flyway y que las migraciones estén en el lugar correcto. También verifica que la configuración de seguridad de la base de datos esté permitiendo la conexión desde la aplicación.

Después de realizar estos cambios, intenta ejecutar nuevamente el programa para ver si se establece la conexión con la base de datos y se ejecutan las migraciones correctamente.

Espero que estos ajustes te ayuden a resolver el problema. ¡Buena suerte con el challenge Forohub!

¡Espero haber ayudado y buenos estudios!