未找到数据库来处理 Flyway postgresql 的错误

问题描述 投票:0回答:1

我是 Java 新手,正在尝试设置第一个 API。

我有一个 Springboot 应用程序,它连接到 docker 容器上的 postgresql 数据库。

我确实设法从应用程序访问数据库,因此数据库已打开并可以按照我的

application.properties

进行访问
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5433/portfolio
spring.datasource.username=postgres
spring.datasource.password=123456
spring.datasource.driverClassName=org.postgresql.Driver
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true

spring.jpa.hibernate.ddl-auto=none

尝试使用以下命令通过

flyway
设置迁移时:

mvn 飞行路线:迁移

我收到错误:

找不到处理 jdbc 的数据库:postgresql://localhost:5433/portfolio

这就是

pom.xml
flyway
的样子:

            <plugin>
            <groupId>org.flywaydb</groupId>
            <artifactId>flyway-maven-plugin</artifactId>
            <version>10.7.1</version>
            <configuration>
                <sqlMigrationSeparator>__</sqlMigrationSeparator>
                <locations>
                    <location>filesystem:src/main/resources/db/migration/portfolio</location>
                </locations>
                <url>jdbc:postgresql://localhost:5433/portfolio</url>
                <user>postgres</user>
                <password>123456</password>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>org.flywaydb</groupId>
                    <artifactId>flyway-core</artifactId>
                    <version>10.7.1</version>
                </dependency>
            </dependencies>
        </plugin>

编辑 - 根据要求添加 docker-compose

version: "3.8"
volumes:
  db:
services:
  postgresdb:
    container_name: postgres_container
    image: postgres
    restart: unless-stopped
    env_file: ./.env
    environment:
        - POSTGRES_USER=$POSTGRESDB_USER
        - POSTGRES_PASSWORD=$POSTGRESDB_ROOT_PASSWORD
        - POSTGRES_DB=$POSTGRESDB_DATABASE
    ports:
        - $POSTGRESDB_LOCAL_PORT:$POSTGRESDB_DOCKER_PORT
    volumes:
        - db:/var/lib/postgres
  pgadmin:
    image: dpage/pgadmin4:latest
    environment:
        PGADMIN_DEFAULT_EMAIL: [email protected]
        PGADMIN_DEFAULT_PASSWORD: admin
        PGADMIN_LISTEN_PORT: 5050
    ports:
        - '5050:5050'

.env 文件

POSTGRESDB_USER=postgres
POSTGRESDB_ROOT_PASSWORD=123456
POSTGRESDB_DATABASE=portfolio
POSTGRESDB_LOCAL_PORT=5433
POSTGRESDB_DOCKER_PORT=5432
java postgresql spring-boot flyway
1个回答
0
投票

错误提示为

No database found to handle jdbc:postgresql
。这并不意味着数据库不可访问/运行,而是 Flyway 无法处理 PostgreSQL 数据库类型。您应该将其添加到 Maven 插件依赖项中:

<dependency>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-database-postgresql</artifactId>
    <version>10.7.1</version>
</dependency>

基于:https://github.com/flyway/flyway/issues/3722

© www.soinside.com 2019 - 2024. All rights reserved.