运行 Cloud9 中的 Yesod
Running Yesod in Cloud9
这些是我在 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
状态:运行ning $ stack
从命令行按预期工作
Yesod 模板快速入门
- 创建一个新的脚手架网站:
stack new yesodOnC9 yesod-postgres && cd yesodOnC9
- 安装yesod命令行工具:
stack build yesod-bin cabal-install --install-ghc
- 构建库:
stack build
在 C9 中创建 PostgreSQL 数据库
- 启动 PostgreSQL 服务
$ sudo service postgresql start
- 连接到服务
$ sudo sudo -u postgres psql
- 创建 PostgreSQL 数据库(从 psql 内部,最后一步)
postgres=# CREATE DATABASE "yesodDB";
- 创建一个测试 PostgreSQL 数据库
postgres=# CREATE DATABASE "yesodDB_test"
- 为 Postgres 用户设置密码
postgres-# \password postgres
Enter new password: MYPASSWORD
结果:
用户:postgres
密码:我的密码
将 Yesod 配置到数据库
- 打开config/settings.yml
- 将数据库用户更改为:
user: "_env:PGUSER:postgres"
- 将数据库密码更改为:
password: "_env:PGPASS:MYPASSWORD"
- 将数据库数据库更改为:
database: "_env:PGDATABASE:yesodDB"
- 关闭settings.yml并打开测试-settings.yml
- 将数据库数据库更改为:
database: 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 会在启动时读取数据库以进行迁移,因此它需要连接到您的数据库。
这些是我在 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
状态:运行ning $ stack
从命令行按预期工作
Yesod 模板快速入门
- 创建一个新的脚手架网站:
stack new yesodOnC9 yesod-postgres && cd yesodOnC9
- 安装yesod命令行工具:
stack build yesod-bin cabal-install --install-ghc
- 构建库:
stack build
在 C9 中创建 PostgreSQL 数据库
- 启动 PostgreSQL 服务
$ sudo service postgresql start
- 连接到服务
$ sudo sudo -u postgres psql
- 创建 PostgreSQL 数据库(从 psql 内部,最后一步)
postgres=# CREATE DATABASE "yesodDB";
- 创建一个测试 PostgreSQL 数据库
postgres=# CREATE DATABASE "yesodDB_test"
- 为 Postgres 用户设置密码
postgres-# \password postgres
Enter new password: MYPASSWORD
结果:
用户:postgres
密码:我的密码
将 Yesod 配置到数据库
- 打开config/settings.yml
- 将数据库用户更改为:
user: "_env:PGUSER:postgres"
- 将数据库密码更改为:
password: "_env:PGPASS:MYPASSWORD"
- 将数据库数据库更改为:
database: "_env:PGDATABASE:yesodDB"
- 关闭settings.yml并打开测试-settings.yml
- 将数据库数据库更改为:
database: 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 会在启动时读取数据库以进行迁移,因此它需要连接到您的数据库。