postgresql - 为什么我的 luminus 应用不能在 Heroku 上运行?
问题描述
我是一个完整的初学者并遵循这本书:https ://pragprog.com/titles/dswdcloj3/web-development-with-clojure-third-edition/
我按照书中和这里关于部署到 Heroku 的说明进行操作:https ://luminusweb.com/docs/deployment.html#heroku_deployment但我遇到了一些问题。
这是我的问题和我已采取的步骤。我在这里使用来自留言簿控制器的源代码并对其进行修改,只是试图让应用程序在 Heroku 中运行(即能够创建帐户、登录并发布消息)。这是我的仓库:https ://github.com/johnbradens/guestbook-heroku
这是我的步骤:
git init
git add .
git commit -m "initial commit"
I added a bin/build file and ran chmod u+x bin/build (based on instructions from https://folcon.github.io/post/2020-04-12-Fulcro-on-Heroku/, because it was saying that react wasn't installed)
I added heroku buildpacks nodejs & clojure (otherwise it said it couldn't read the npm from bin/build)
heroku addons:create heroku-postgresql
git push heroku main
这是我在查看 Heroku 应用程序时看到的:
当我运行时,heroku run lein run migrate
我收到以下错误:
Syntax error compiling at (/tmp/form-init6415984187052473661.clj:1:73).
could not find a non empty configuration file to load. looked in the classpath (as a "resource") and on a file system via "conf" system property
我尝试编辑,env/prod/resources/config.edn
但我不确定如何处理它。我尝试了很多东西,但都没有奏效。
env/prod/resources/config.edn
这是我在更改文件时尝试的示例。上面的链接之一说只有{:prod true}
这样,这就是我现在所拥有的,但我也尝试过:
{:prod true
:port (System/getenv "PORT")
:database-url (System/getenv "JDBC_DATABASE_URL")
}
编辑:感谢 clojure 松弛,我发现我的 env 文件夹被忽略了,并创建了一个 prod-config.edn 文件,我在该文件中有上述文本。我尝试再次推送到 Heroku,但仍然收到与 Web 应用程序上的图像相同的错误,并且当我运行heroku run lein run migrate
找不到配置文件时仍然收到相同的错误消息。
我应该怎么办?
解决方案
好的,这就是最终修复它的原因。我在这篇 github 帖子中找到了这个:https ://github.com/luminus-framework/luminus/issues/231
看起来
heroku run lein run migrate
从文档中看是行不通的。
可以运行生成的 jar 文件来完成迁移:
heroku run java -cp target/uberjar/<app name>.jar clojure.main -m guestbook.core migrate
把这个留在这里,以防其他人有同样的问题。
推荐阅读
- c# - 在 C# 中获取给定年份的 ISO 周数
- phpmailer - PHPMailer + reCAPTCHA 或任何其他反垃圾邮件 - 问题
- python - 从另一个列表中的列表搜索中获取 2 个变量
- angular - 如何等待 http 请求以 Angular 8 完成?
- angular - PrimeNG P 对话框位置不适用于 Angular
- python - Groupby 在多列上,然后追加
- html - 未捕获的类型错误:无法读取未定义移相器 3 平台游戏的属性“添加”
- laravel - 您无权查看此页面。交易尚未处理
- python - 贝尔曼福特算法 Python 的列表索引超出范围
- sql - 如何使用 sequelize for Postgres 删除重复的行?