这些是我在 Cloud9 中运行 Yesod 脚手架的步骤。整个过程花了几个小时,我必须升级内存和磁盘(在继续之前执行此操作):
安装堆栈
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 575159689BEFB442
- (Ubuntu 14.04 (amd64)):
echo 'deb http://download.fpcomplete.com/ubuntu trusty main'|sudo tee/etc/apt/sources.list.d/fpco.list
sudo apt-get update && sudo apt-get install stack -y
状态:从命令行运行 $ stack
按预期工作
Yesod 模板快速入门
- 创建一个新的脚手架网站:
stack new yesodOnC9 yesod-postgres && cd yesodOnC9
- 安装 yesod 命令行工具:
堆栈构建 yesod-bin cabal-install --install-ghc
- 构建库:
堆栈构建
在C9中创建PostgreSQL数据库
- 启动 PostgreSQL 服务
$ sudo 服务 postgresql 启动
- 连接到服务
$ sudo sudo -u postgres psql
- 创建 PostgreSQL 数据库(从 psql 内部,最后一步)
postgres=# 创建数据库 "yesodDB";
- 创建测试 PostgreSQL 数据库
postgres=# 创建数据库“yesodDB_test”
- 为 Postgres 用户设置密码
postgres-#\密码postgres
输入新密码:MYPASSWORD
结果:
用户:postgres
密码:MYPASSWORD
配置Yesod到数据库
- 打开 config/settings.yml
- 将数据库用户更改为:
用户:“_env:PGUSER:postgres”
- 将数据库密码更改为:
密码:“_env:PGPASS:MYPASSWORD”
- 将数据库数据库更改为:
数据库:“_env:PGDATABASE:yesodDB”
- 关闭 settings.yml 并打开 test-settings.yml
- 将数据库数据库更改为:
数据库:yesodDB_test
启动开发服务器:
stack exec -- yesod devel -b $IP -p $PORT
结果:成功,正在运行脚手架
If you leave your workspace, you will have to restart the PostgreSQL service with:
$ sudo service postgresql start
when you return.
最佳答案
您是否将 Postgres 配置为接受错误消息所示的 TCP 连接?您安装的 Yesod 似乎没问题,但 Yesod 在启动时读取数据库进行迁移,因此它需要连接到您的数据库。
关于haskell - 在 Cloud9 中运行 Yesod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37133463/