Size: a a a

Чат руби-школы

2020 March 25

c

cyrkl in Чат руби-школы
Vsevolod Avramov
Надо добавить уникальность в БД на это поле. А при сохранении проверять на ошибку уникальности по этому полю (Не activerecord, а БД) и вызывать сохранение заново. Потому что если делать не с помощью сиквенсов, то есть вероятность одновременного создания номеров.
AR  Сам выдаёт ошибку БД.
источник

c

cyrkl in Чат руби-школы
mr Bubble
Я чет такого не нашел, и мне id не совсем подходят, первые две цифры - текущий год, остальные 5 номер заказ в году, каждый год номер заказа будет начинаться с нуля.
Делается Sequence посложнее и усё
источник

VA

Vsevolod Avramov in Чат руби-школы
cyrkl
Делается Sequence посложнее и усё
Проблема кастомных сиквенсов в том, что они не отображаются в schema.rb и потом не получится делать db:schema:load rake.
источник

VA

Vsevolod Avramov in Чат руби-школы
Хотя может сейчас это уже решено. Давно с этим не сталкивался
источник

c

cyrkl in Чат руби-школы
Vsevolod Avramov
Проблема кастомных сиквенсов в том, что они не отображаются в schema.rb и потом не получится делать db:schema:load rake.
Кстати. вот Rake db:migrate  работает только с существующей базой с правами и пользователем. А как тогда создасть саму БД и пользователя с паролем и правами?
источник

VA

Vsevolod Avramov in Чат руби-школы
cyrkl
Кстати. вот Rake db:migrate  работает только с существующей базой с правами и пользователем. А как тогда создасть саму БД и пользователя с паролем и правами?
С помощью миграции? Никак. Я сейчас использую pg контейнер. Он автоматом создаёт пользователя и бд в зависимости от ENVs при запуске
источник

c

cyrkl in Чат руби-школы
Vsevolod Avramov
С помощью миграции? Никак. Я сейчас использую pg контейнер. Он автоматом создаёт пользователя и бд в зависимости от ENVs при запуске
а как тогда развернуть это дело капистраной?
источник

c

cyrkl in Чат руби-школы
Vsevolod Avramov
С помощью миграции? Никак. Я сейчас использую pg контейнер. Он автоматом создаёт пользователя и бд в зависимости от ENVs при запуске
Погодите а Шеф,паппет это ж Девопс инструменты для развёртывания. Написаны на рубях.
источник

VA

Vsevolod Avramov in Чат руби-школы
М-м-м... Капистрана в 2к20 это пережиток прошлого :)
Используй современные средства для этого. Контейнеры ci и прочее
источник

c

cyrkl in Чат руби-школы
Vsevolod Avramov
М-м-м... Капистрана в 2к20 это пережиток прошлого :)
Используй современные средства для этого. Контейнеры ci и прочее
какие например?
источник

c

cyrkl in Чат руби-школы
У мну ваще монолит. ни контейнеров ничего
источник

VA

Vsevolod Avramov in Чат руби-школы
cyrkl
У мну ваще монолит. ни контейнеров ничего
В любом случае у тебя есть DB, Redis. Можно развернуть sidekiq и puma(или что там вместо неё) на разных контейнерах.
источник

c

cyrkl in Чат руби-школы
вместо пумы пессенджер
источник

c

cyrkl in Чат руби-школы
сайдкика нет.
источник

VA

Vsevolod Avramov in Чат руби-школы
cyrkl
какие например?
М-м-м... Хороший деплой сейчас - это наверное билд контейнеров в CI, проверка всех тестов, а потом эти же контейнеры, заливаешь на сервер. Мои pet projects не большие - по-этому всё запускается на одном VPS с помощью docker-compose.
источник

VA

Vsevolod Avramov in Чат руби-школы
cyrkl
вместо пумы пессенджер
Ну вот. Раз passenger, то должен ещё контейнер для фронта быть nginx/apache. А сайдкика нет - всё-равно как-то запускаешь отложенные задачи. С помощью того же delay job. Вот его можно запустить в отдельном контейнере.
источник

c

cyrkl in Чат руби-школы
Vsevolod Avramov
Ну вот. Раз passenger, то должен ещё контейнер для фронта быть nginx/apache. А сайдкика нет - всё-равно как-то запускаешь отложенные задачи. С помощью того же delay job. Вот его можно запустить в отдельном контейнере.
эмм . делея нет. только awesome . рейк таски и крон.nginx
источник

VA

Vsevolod Avramov in Чат руби-школы
cyrkl
эмм . делея нет. только awesome . рейк таски и крон.nginx
Я хз, что такое awesome. Ну, кстати - крон в докере - это интересная тема. Для этого наверно chef и нужен. Но в любом случае - поднимаешь один контейнер с сервером. На втором контейнере запускаешь chef и там же ранятся твои рейк таски по крону.
источник

c

cyrkl in Чат руби-школы
Vsevolod Avramov
Я хз, что такое awesome. Ну, кстати - крон в докере - это интересная тема. Для этого наверно chef и нужен. Но в любом случае - поднимаешь один контейнер с сервером. На втором контейнере запускаешь chef и там же ранятся твои рейк таски по крону.
awesome позволяет соз-давать крон джобы с рейк тасками как обратимые миграции. совместимые скапистраной
источник

VA

Vsevolod Avramov in Чат руби-школы
cyrkl
awesome позволяет соз-давать крон джобы с рейк тасками как обратимые миграции. совместимые скапистраной
Можешь ссылку скинуть на него
источник