无法在 prod 配置文件中使用 postgreSQL 保存数据

Posted

技术标签:

【中文标题】无法在 prod 配置文件中使用 postgreSQL 保存数据【英文标题】:Can't save data with postgreSQL in prod profile 【发布时间】:2016-11-16 04:11:57 【问题描述】:

当我使用 prod 配置文件启动我的服务器时,我可以在我的 JHipster 应用程序中与管理员 admin 连接,但是当我想创建一个新对象时我无法保存任何数据(我有一个 InternalServerError)。然而,在具有相同数据库(PostgreSQL)的开发配置文件中,它运行良好。

此外,在使用 prod profile 来了解问题时,我不知道如何获取日志。

我可以为 prod 配置文件添加配置文件

# ===================================================================
# Spring Boot configuration for the "prod" profile.
#
# This configuration overrides the application.yml file.
# ===================================================================

# ===================================================================
# Standard Spring Boot properties.
# Full reference is available at:
# http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
# ===================================================================


spring:
    devtools:
        restart:
            enabled: false
        livereload:
            enabled: false
    datasource:
        url: jdbc:postgresql://localhost:5432/vraiJhipster
        name:
        username: vraiJhipster
        password:
    jpa:
        database-platform: com.mycompany.myapp.domain.util.FixedPostgreSQL82Dialect
        database: POSTGRESQL
        show_sql: false
        properties:
            hibernate.cache.use_second_level_cache: true
            hibernate.cache.use_query_cache: false
            hibernate.generate_statistics: false
            hibernate.cache.region.factory_class: org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory
    data:
        elasticsearch:
            cluster-name:
            cluster-nodes: localhost:9300
    mail:
        host: localhost
        port: 25
        username:
        password:
    thymeleaf:
        cache: true

liquibase:
    contexts: prod

server:
    port: 8080
    compression:
        enabled: true
        mime-types: text/html,text/xml,text/plain,text/css, application/javascript, application/json
        min-response-size: 1024

# ===================================================================
# JHipster specific properties
# ===================================================================

jhipster:
    http:
        cache: # Used by the CachingHttpHeadersFilter
            timeToLiveInDays: 1461
    cache: # Hibernate 2nd level cache, used by CacheConfiguration
        timeToLiveSeconds: 3600
        ehcache:
            maxBytesLocalHeap: 256M
    security:
        rememberMe:
            # security key (this key should be unique for your application, and kept secret)
            key: *****************************************
    mail: # specific JHipster mail property, for standard properties see MailProperties
        from: vraiJhipster@localhost
    metrics: # DropWizard Metrics configuration, used by MetricsConfiguration
        jmx.enabled: true
        spark:
            enabled: false
            host: localhost
            port: 9999
        graphite:
            enabled: false
            host: localhost
            port: 2003
            prefix: vraiJhipster
        logs: # Reports Dropwizard metrics in the logs
            enabled: false
            reportFrequency: 60 # in seconds
    logging:
        logstash: # Forward logs to logstash over a socket, used by LoggingConfiguration
            enabled: false
            host: localhost
            port: 5000
            queueSize: 512
    swagger: # swagger is disabled. It can be disabled by pasing 'no-swagger' profile at run time as well
        enabled: false

谢谢。

如果您需要有关我的配置的信息,可以询问。

【问题讨论】:

请在 GitHub 上分享更具体的信息,例如 Stacktraces、代码片段,甚至是完整的示例应用程序。 如何在 prod 配置文件中运行您的应用程序:mvn、可执行 jar、在外部服务器中部署的 war?哪个 JHipster 版本? @GaëlMarziou 我使用 Jhipster 3.4.2(最新版本),我用 spring 启动服务器,所以我猜它适用于 mvn。 对不起,我不明白您所说的“我用弹簧启动服务器”是什么意思。您的意思是从命令行作为可执行 jar 启动应用程序还是使用“java -jar”? docs.spring.io/spring-boot/docs/1.3.x/reference/htmlsingle/… 其实我用的是 mvn -Pprod 【参考方案1】:

我发现问题实际上是 elasticSearch。当我在生产模式下使用 JHipster 时,默认配置使用端口 9300 上的 elasticSearch。但我的计算机上没有运行任何 elasticSearch。所以我将 elasticSearch 配置从 dev 配置文件复制粘贴到 prod 配置文件。

data:
    elasticsearch:
        cluster-name:
        cluster-nodes:
        properties:
            path:
              logs: target/elasticsearch/log
              data: target/elasticsearch/data

【讨论】:

以上是关于无法在 prod 配置文件中使用 postgreSQL 保存数据的主要内容,如果未能解决你的问题,请参考以下文章

如何根据 Spring Boot 中的活动配置文件设置注释属性值?

Jhipster Prod 构建失败以及未找到 Cloudfoundry 错误

我的postgres * .conf文件在哪里?

无法在 Laravel 项目中使用 deploy.sh 文件运行“npm run prod”(使用 Laravel Mix)

如何在“ng build --prod”之后让我的 Angular 应用程序使用编辑过的配置文件

使用 Maven 的 dev 和 prod 的不同配置文件