Рекомендуемые процедуры работы с Discourse на локальном компьютере в среде Windows / Vagrant / VirtualBox

Запуск виртуальной машины

rm -rf tmp log/* && vagrant reload

Запуск Rails

rm -rf tmp log/* && vagrant ssh -c "bundle exec rails s -b 0.0.0.0"

Обновление гемов и БД

bundle install && bundle exec rake db:migrate

Убийство Rails

Узнаём идентификатор процесса сервера командой:

lsof -wni tcp:3000

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

kill -9 <идентификатор (PID)>

Запуск отладчика Ruby

vagrant ssh -c "rdebug-ide --host 0.0.0.0 --port 1234 --dispatcher-port 26162 -- bin/rails s -b 0.0.0.0"

Предварительно удалять кэш ( rm -rf tmp log/*) не рекомендую: у меня тогда отладчик иногда падает с низкоуровневыми сбоями памяти (segfault). С готовым кэшем не падает.

Отладка скрипта обновления базы данных

vagrant ssh -c "rdebug-ide --host 0.0.0.0 --port 1234 --dispatcher-port 26162 -- bin/rake db:migrate:redo VERSION=20150829040855"

Открытие туннеля к базе данных в среде Vagrant

vagrant ssh -- -L 15432:localhost:5432

Выполнение запроса SQL хозяйской среды (Windows) к базе данных в гостевой среде (Vagrant) при уже открытом туннеле

psql --port=15432 -c "UPDATE user_options SET include_tl0_in_digests = TRUE;"

Запуск sidekiq

vagrant ssh -c 'bundle exec sidekiq'

Остановка sidekiq

ps -ef | grep sidekiq | grep -v grep | awk '{print $2}' | xargs kill -9

Запуск mailcatcher

vagrant ssh -c 'cd ~ && mailcatcher --http-ip=0.0.0.0'

письма смотреть здесь: http://localhost:4080/

Выполнение регулярной работы вручную в консоли

echo 'Jobs::PeriodicalUpdates.new.execute({})' | bundle exec rails c