运行 Cloud9 中的 Yesod

Running Yesod in Cloud9

这些是我在 Cloud9 中 运行 Yesod 脚手架的步骤。整个过程花了几个小时,我不得不升级内存和磁盘(在继续之前执行此操作):

正在安装堆栈

  1. sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 575159689BEFB442
  2. (Ubuntu 14.04 (amd64)):
    echo 'deb http://download.fpcomplete.com/ubuntu trusty main'|sudo tee /etc/apt/sources.list.d/fpco.list
  3. sudo apt-get update && sudo apt-get install stack -y

状态:运行ning $ stack 从命令行按预期工作

Yesod 模板快速入门

  1. 创建一个新的脚手架网站: stack new yesodOnC9 yesod-postgres && cd yesodOnC9
  2. 安装yesod命令行工具: stack build yesod-bin cabal-install --install-ghc
  3. 构建库: stack build

在 C9 中创建 PostgreSQL 数据库

  1. 启动 PostgreSQL 服务 $ sudo service postgresql start
  2. 连接到服务 $ sudo sudo -u postgres psql
  3. 创建 PostgreSQL 数据库(从 psql 内部,最后一步) postgres=# CREATE DATABASE "yesodDB";
  4. 创建一个测试 PostgreSQL 数据库 postgres=# CREATE DATABASE "yesodDB_test"
  5. 为 Postgres 用户设置密码 postgres-# \password postgres Enter new password: MYPASSWORD

结果:
用户:postgres
密码:我的密码

将 Yesod 配置到数据库

  1. 打开config/settings.yml
  2. 将数据库用户更改为: user: "_env:PGUSER:postgres"
  3. 将数据库密码更改为: password: "_env:PGPASS:MYPASSWORD"
  4. 将数据库数据库更改为: database: "_env:PGDATABASE:yesodDB"
  5. 关闭settings.yml并打开测试-settings.yml
  6. 将数据库数据库更改为: database: yesodDB_test

启动开发服务器:

  1. 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 会在启动时读取数据库以进行迁移,因此它需要连接到您的数据库。