Size: a a a

Saint P Ruby Community

2020 March 18

VK

Vladimir Kalinkin in Saint P Ruby Community
источник

VK

Vladimir Kalinkin in Saint P Ruby Community
источник

VD

Vla Dem in Saint P Ruby Community
Mikhail Sytchev
есть статья в которой описывается как за счет транзакций избавиться от глобоального состояния в тестах?
транзакции избавляют от глобального состояния в БД, а всё остальное нужно ручками подчищать в любом случае

Рельса оборачивает каждый тест в транзакцию по умолчанию, в RSpec за это отвечает use_transactional_tests = true в конфиге. Если не "пачкаете" базу в before(:all), то будет всё ок)
источник

MS

Mikhail Sytchev in Saint P Ruby Community
я тогда не понимаю о каких транзакциях идет речь
источник

MS

Mikhail Sytchev in Saint P Ruby Community
о dry-transaction (и аналогах) или о механизме транзакций БД?
источник

RI

Rustam Ibragimov in Saint P Ruby Community
о БД :)
источник

MS

Mikhail Sytchev in Saint P Ruby Community
а, ок
источник

:)

:-) ) in Saint P Ruby Community
Ребят помогите парой ответов на нубские вопросы о работе с Docker/Docker compose из Rubymine ( а то мне тут подкинули мамонта на 1.9.3)
я воспользовался гайдом https://www.jetbrains.com/help/ruby/using-docker-compose-as-a-remote-interpreter.html#

Собрал образ,добавил remote interpreter - docker-compose и написал entrypoint, чтобы запускал рельсовый сервак и он даже запустился збс но возникли вопросы

В примере (https://github.com/JetBrains/sample_rails_app/blob/master/docker-compose.yml) entrypoint'a нет а в компоузе команда стоит tail -f /dev/null, но так если сделать я не понимаю как запустить сервак

1. Как правильно работать - указывать энтрипоинт или нет ? Если нет то как запустить сервак?
2. А я правильно понимаю что когда я так разрабатываю мне не надо при каждом изменении перезапускать docker-compose ? Надо ли это как-то отдельно настраивать ?
3. Я попытался сделать миграцию tools -> run rails generator -> rails g migration но получил в ответ

/bin/bash --login -c "export PATH=/usr/local/bin:/usr/local/bundle/bin:/usr/local/bundle/bin:$PATH && rails g migration LoadDump"
Identity added: ....
Rails is not currently installed on this system. To get the latest version, simply type:

   $ sudo gem install rails

You can then rerun your "rails" command.


И в этот момент совсем потерялся куда дальше
источник

:)

:-) ) in Saint P Ruby Community
ответ вида: Вот статья/видео прочитай и все поймешь подойдет
источник

:)

:-) ) in Saint P Ruby Community
спасибо большое
источник

:)

:-) ) in Saint P Ruby Community
источник

:)

:-) ) in Saint P Ruby Community
на всякий случай уточню "docker-compose run app rails g migration LoadDump" вот так работает и даже файлы магическим образом появляются локально
источник

АФ

Артем Филатов in Saint P Ruby Community
:-) )
на всякий случай уточню "docker-compose run app rails g migration LoadDump" вот так работает и даже файлы магическим образом появляются локально
я бы не рекомендовал без особой необходимости для запуска одноразовых команд использовать run, т.к. он без ключика --rm не удалит контейнер, создаваемый в результате запуска этой команды. Вместо этого рекомендую использовать exec - он выполнит твою rails-команду в уже запущенном контейнере
источник

:)

:-) ) in Saint P Ruby Community
ага, понял, а как бы мне сделать чтобы рубимайн все свои команды типа старта сервака и прочего делал в контейнере ?
источник

АФ

Артем Филатов in Saint P Ruby Community
нужно использовать префикс к ним, например: docker-compose exec app rails g migration ...
источник

АФ

Артем Филатов in Saint P Ruby Community
кроме того, есть довольно удобная тулза для упрощения жизни: https://github.com/bibendi/dip#installation
источник

АФ

Артем Филатов in Saint P Ruby Community
рекомендую освоиться с ней, она как раз срезает некоторые углы при работе с compose )
источник

:)

:-) ) in Saint P Ruby Community
кайф пошел изучать
источник

DI

Dmitriy Ivliev in Saint P Ruby Community
как более универсальная альтернатива можно использовать Makefile. Антон недавно скидывал отличную статью на эту тему https://blog.mindlessness.life/2019/11/17/the-language-agnostic-all-purpose-incredible-makefile.html?utm_source=telegram.me&utm_medium=social&utm_campaign=mdtrue-*pyatnichnoe-chtivo*privet--str
источник

:)

:-) ) in Saint P Ruby Community
++
источник