Запуск Yesod в Cloud9

Это шаги, которые я использовал для запуска скаффолда Yesod в Cloud9. Весь процесс занял несколько часов, и мне пришлось обновить память и диск (сделайте это, прежде чем продолжить):

Установка стека

  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: stack build yesod-bin cabal-install --install-ghc
  3. Библиотеки сборки: stack build

Создайте базу данных PostgreSQL в C9

  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 и откройте test-settings.yml
  6. Изменить базу данных базы данных на: database: yesodDB_test

Запускаем сервер разработки:

  1. stack exec -- yesod devel -b $IP -p $PORT

Результат: успешно, строительные леса работают

Если вы покинете свое рабочее пространство, вам придется перезапустить службу PostgreSQL с помощью: $ sudo service postgresql start, когда вы вернетесь.


person Trajanson    schedule 10.05.2016    source источник
comment
Скрипт для настройки базы данных — github.com/yesodweb/yesod- scaffold/blob/master/setup.sh   -  person Trajanson    schedule 12.05.2016


Ответы (1)


Вы настроили Postgres для приема TCP-соединений, как указано в сообщении об ошибке? Ваша установка Yesod выглядит нормально, но Yesod считывает БД, чтобы выполнить миграцию во время запуска, поэтому ему необходимо подключение к вашей БД.

person Khaezzar    schedule 10.05.2016
comment
Если я не ошибаюсь, вам не нужно устанавливать haskell-платформу, так как об этом позаботится стек. - person Khaezzar; 12.05.2016
comment
Чтобы уточнить, sudo apt-get update && sudo apt-get install stack -y будет устанавливать haskell? Значит, кто-то может сразу перейти к Установке стека? - person Trajanson; 13.05.2016
comment
да, вы можете прочитать об этом на странице стека. - person Khaezzar; 14.05.2016
comment
На самом деле стек — это бинарный файл, который установит haskell. - person Khaezzar; 18.05.2016