haskell - 在 Cloud9 中运行 Yesod

标签 haskell yesod cloud9-ide haskell-stack

这些是我在 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

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

Yesod 模板快速入门

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

在C9中创建PostgreSQL数据库

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

结果:
用户:postgres
密码:MYPASSWORD

配置Yesod到数据库

  1. 打开 config/settings.yml
  2. 将数据库用户更改为: 用户:“_env:PGUSER:postgres”
  3. 将数据库密码更改为: 密码:“_env:PGPASS:MYPASSWORD”
  4. 将数据库数据库更改为: 数据库:“_env:PGDATABASE:yesodDB”
  5. 关闭 settings.yml 并打开 test-settings.yml
  6. 将数据库数据库更改为: 数据库: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 在启动时读取数据库进行迁移,因此它需要连接到您的数据库。

关于haskell - 在 Cloud9 中运行 Yesod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37133463/

相关文章:

ubuntu - 部署 Yesod 网络应用程序

php - 在 cloud9 环境中运行自定义网络服务器并从外部世界访问它

node.js - 如何将 Express 模块安装到 Cloud9 项目中?

function - 使用 Haskell 创建高阶函数

haskell - Parsec,解析结束后访问最后的用户状态

haskell - Data Parallel Haskell 中的 PArray 和 [::] 有什么区别?

python - 重定向后 Flask flash 不工作

haskell - 不知道为什么这个模式守卫匹配

postgresql - 如何使用 Yesod/Persistent 创建外键约束?

haskell - 使用 Conduits 从 rawQuery 中获取数据