当前位置: 首页 > 知识库问答 >
问题:

Heroku+Grails-在Heroku上构建应用程序时缺少DATABASE_URL

应俊爽
2023-03-14

我正在尝试使用grails教程将我的应用程序连接到共享数据库5MB。我使用的是grails 2.1.0。在我的本地机器上,当我运行heroku配置时,我可以看到DATABASE_URL被设置了,但是在执行git push之后······我的生成因错误而停止:

Error packaging application: Error loading DataSource.groovy: null (Use --stacktrace to see the full trace)
Failed to build app
Heroku push rejected, failed to compile Grails app

因此,我添加了日志记录,以查看Heroku上的环境。我已将println system.env添加到datasource.groovy中,但找不到任何database_url:

.[OLDPWD:/app/tmp/repo.git/.cache, SHELL:/bin/bash, SHLVL:2, GIT_DIR:., JAVA_HOME:/usr/lib/jvm/java-6-openjdk, PATH:/app/tmp/repo.git/.cache/.grails/bin::/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin, SSH_CLIENT:XXX, MAIL:XXX, USER:XXX, LOG_TOKEN:t.9e79a5be-dfa2-446e-9f83-f6b4ebbc4eb7, GRAILS_HOME:/app/tmp/repo.git/.cache/.grails, PWD:XXX, HOME:/app/, LOGNAME:u11846, _:/app/tmp/repo.git/.cache/.grails/bin/grails, SSH_CONNECTION:XXX, LD_LIBRARY_PATH:/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server:/usr/lib/jvm/java-6-openjdk/jre/lib/amd64:/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64]
heroku addons
=== XXX Configured Add-ons
shared-database:5mb
heroku config
=== Config Vars for XXX

DATABASE_URL:        postgres://XXX
JAVA_OPTS:           -Xmx384m -Xss512k -XX:+UseCompressedOops
SHARED_DATABASE_URL: postgres://XXX
production {
    dataSource {
        dbCreate = "update"
        driverClassName = "org.postgresql.Driver"
        dialect = org.hibernate.dialect.PostgreSQLDialect

        println System.env
        println System.env.DATABASE_URL
        uri = new URI(System.env.DATABASE_URL)
        println uri

        url = "jdbc:postgresql://" + uri.host + uri.path
        username = uri.userInfo.split(":")[0]
        password = uri.userInfo.split(":")[1]
    }
}
runtime 'postgresql:postgresql:8.4-702.jdbc3'

共有1个答案

令狐新翰
2023-03-14

应用程序环境变量在生成时不可用。您的代码需要能够相应地处理这一点。或者,您可以启用新的user_env_compileHeroku Labs特性,该特性使环境变量能够在构建时存在:https://devcenter.Heroku.com/articles/labs-user-env-compile

 类似资料:
  • 问题内容: 我已经配置了SSL enpoint,并且可以确认它正在工作。当我进入日志时,会看到以下内容: 我试图追踪有关退出代码143的一些信息,以及为什么所有进程都被停止。签出以下服务器文件: 感谢您的提前反馈。如果需要,我可以提供更多详细信息。 ------解决方案(编辑)------- 请参阅下面的答案。 问题答案: 我在这里找到了答案:ExpressJS节点HTTPS服务器上的Heroku

  • 问题内容: 我使用Node.JS和Socket.IO创建了一个简单的聊天应用程序,在本地一切正常,但是当我将其推送到heroku时,它给了我一个应用程序错误,当我检查日志时,这是错误: 因此,我发现indexof是Socket.IO使用的模块,它位于我的node_modules文件夹中,但是由于某种原因,它没有被推送到heroku或只是未被识别。我将模块重新安装了5-6次,并重新创建了应用程序,但

  • 我创建了一个rails 4.1.4应用程序,试图在heroku上运行,但我得到以下错误- 缺少环境的

  • 我使用的是。我在Heroku上推送了我的应用程序 运行附着在终端上...向上, 渲染设备/邮件/confirmation_instructions.html.erb (1.8毫秒) 发送邮件到 xyz@gmail.com (29.3ms) 耙子中止了!SocketError: 名称解析/应用程序/供应商/捆绑包/红宝石/2.0.0/宝石/邮件-2.5.4/库/邮件/网络/delivery_meth

  • 我想在heroku上有一个tilestream,我遵循了教程,我做了完全相同的事情,并不断得到一个构建/编译错误。 刚刚添加了2个文件和一个目录: Procfile: 包裹json: 空的/平铺方向。 当通过git推送到heroku时,我得到以下错误: 当我去网站时,我得到了错误(检查这里) 我还检查了日志: 以及在heroku上运行的进程: 对于这个例子,我没有将地图上传到./ware目录,但是

  • 当我构建我的应用程序时,我遇到以下错误,请帮助。 运行应用程序时没有错误,制造战争时出错。