Auto | arch-x1: 2026-06-03 21:34:10
This commit is contained in:
-74
@@ -1,74 +0,0 @@
|
||||
---
|
||||
status: seed
|
||||
type: guide
|
||||
tags:
|
||||
- programming
|
||||
- ruby-on-rails
|
||||
- api
|
||||
created: 2026-05-25
|
||||
updated: 2026-05-25
|
||||
title: API импорт в Rails через runner
|
||||
source: "[[Работа с API для проекта Attendance Mephi]]"
|
||||
---
|
||||
|
||||
# API импорт в Rails через runner
|
||||
|
||||
Памятка по ручному запуску импортов в [[Ruby On Rails]]-проекте Attendance Mephi для [[НИР]].
|
||||
|
||||
## Контекст
|
||||
|
||||
Импорт запускается через `bin/rails runner`:
|
||||
|
||||
```sh
|
||||
/home/ada/.local/bin/mise exec ruby -- bin/rails runner '...'
|
||||
```
|
||||
|
||||
Актуальный семестр берется из `Term.actual`. Для старта `2026-02-07` код семестра: `20252`.
|
||||
|
||||
## Credentials
|
||||
|
||||
```yaml
|
||||
api:
|
||||
home_mephi:
|
||||
host:
|
||||
code:
|
||||
token:
|
||||
students_mephi:
|
||||
host:
|
||||
username:
|
||||
password:
|
||||
```
|
||||
|
||||
См. также: [[Rails credentials edit не открывает редактор]].
|
||||
|
||||
## Endpoints
|
||||
|
||||
```text
|
||||
GET {home_mephi.host}/study_groups.json?term_code=20252&code=...&token=...
|
||||
GET {home_mephi.host}/tutors.json?term_code=20252&code=...&token=...
|
||||
GET {students_mephi.host}/get_list_by_group_name?group=...&term=20252
|
||||
GET {home_mephi.host}/tutors/{staff_id}/schedules.json?term_code=20252&date=YYYY-MM-DD&code=...&token=...
|
||||
```
|
||||
|
||||
`students_mephi` использует Basic Auth: `username/password`.
|
||||
|
||||
## Ручная загрузка
|
||||
|
||||
```sh
|
||||
/home/ada/.local/bin/mise exec ruby -- bin/rails runner 'ImportGroupsService.execute'
|
||||
/home/ada/.local/bin/mise exec ruby -- bin/rails runner 'ImportTutorsService.execute'
|
||||
/home/ada/.local/bin/mise exec ruby -- bin/rails runner 'ImportStudentsService.execute'
|
||||
/home/ada/.local/bin/mise exec ruby -- bin/rails runner 'term = Term.actual; ImportDisciplineService.execute(nil, term)'
|
||||
```
|
||||
|
||||
Расписание на сегодня:
|
||||
|
||||
```sh
|
||||
/home/ada/.local/bin/mise exec ruby -- bin/rails runner 'term = Term.actual; ImportScheduleService.execute(Date.today, term)'
|
||||
```
|
||||
|
||||
Расписание за весь семестр до сегодня:
|
||||
|
||||
```sh
|
||||
/home/ada/.local/bin/mise exec ruby -- bin/rails runner 'term = Term.actual; finish = [term.get_finish_date, Date.today].min; (term.start_date..finish).each { |date| ImportScheduleService.execute(date, term) unless date.wday == 0 }'
|
||||
```
|
||||
-42
@@ -1,42 +0,0 @@
|
||||
---
|
||||
status: seed
|
||||
type: guide
|
||||
tags:
|
||||
- programming
|
||||
- ruby-on-rails
|
||||
- deploy
|
||||
created: 2026-05-29
|
||||
updated: 2026-05-29
|
||||
title: Capistrano deploy через systemd
|
||||
source: "[[Команды для деплоя с помощью Capistrano]]"
|
||||
---
|
||||
|
||||
# Capistrano deploy через systemd
|
||||
|
||||
Заметка про выдачу минимальных `sudo`-прав для деплоя Rails-приложения через Capistrano, когда сервисы управляются через `systemd`.
|
||||
|
||||
## Sudoers
|
||||
|
||||
В `/etc/sudoers` задаётся alias для команд, которые Capistrano может выполнять без пароля:
|
||||
|
||||
```sudoers
|
||||
Cmnd_Alias PUMA_CONTROL = /usr/bin/mv /tmp/navigation_backend_puma_production.service /etc/systemd/system/, /usr/bin/mv /tmp/navigation_backend_puma_production.socket /etc/systemd/system/, /bin/systemctl daemon-reload, /bin/systemctl enable navigation_backend_puma_production, /bin/systemctl start navigation_backend_puma_production, /bin/systemctl stop navigation_backend_puma_production, /bin/systemctl restart navigation_backend_puma_production, /bin/systemctl enable navigation_backend_puma_production.socket, /bin/systemctl restart navigation_backend_sidekiq_production.service, /bin/systemctl restart navigation_backend_solid_queue_production.service, /bin/systemctl restart solid_queue
|
||||
deploy ALL = NOPASSWD: PUMA_CONTROL
|
||||
```
|
||||
|
||||
Где:
|
||||
- `deploy` — пользователь, от имени которого выполняется деплой;
|
||||
- `navigation_backend` — имя приложения в service/socket unit-файлах.
|
||||
|
||||
## Команды деплоя
|
||||
|
||||
```bash
|
||||
cap production puma:install
|
||||
cap production deploy
|
||||
```
|
||||
|
||||
`puma:install` кладёт `systemd` unit-файлы, после чего `deploy` перезапускает Puma и фоновые сервисы без интерактивного ввода пароля.
|
||||
|
||||
## Связанные заметки
|
||||
- [[Ruby On Rails]]
|
||||
- [[Sidekiq - основа работы]]
|
||||
-70
@@ -1,70 +0,0 @@
|
||||
---
|
||||
status: seed
|
||||
type: guide
|
||||
tags:
|
||||
- programming
|
||||
- ruby-on-rails
|
||||
- debug
|
||||
created: 2026-05-20
|
||||
updated: 2026-05-20
|
||||
title: Rails credentials edit не открывает редактор
|
||||
source: "[[99 System/Archive/Rails credentials edit не открывает редактор|Rails credentials edit не открывает редактор]]"
|
||||
---
|
||||
|
||||
# Rails credentials edit не открывает редактор
|
||||
|
||||
Заметка фиксирует кейс, когда `bin/rails credentials:edit` в [[Ruby On Rails]] завершается без открытия редактора и без явной ошибки.
|
||||
|
||||
## Симптом
|
||||
|
||||
Команда:
|
||||
|
||||
```bash
|
||||
bin/rails credentials:edit
|
||||
```
|
||||
|
||||
сразу печатает:
|
||||
|
||||
```text
|
||||
File encrypted and saved.
|
||||
```
|
||||
|
||||
При этом редактор не открывается, а credentials фактически не меняются.
|
||||
|
||||
## Причина
|
||||
|
||||
Rails 7.x выбирает редактор через helper `rails/command/helpers/editor.rb` и берёт `$VISUAL` приоритетнее `$EDITOR`.
|
||||
|
||||
Если переменная окружения `$VISUAL` установлена, например в `zed` или `code`, значение `$EDITOR` игнорируется. Если указанный в `$VISUAL` редактор не найден или не может быть запущен, системный вызов завершается с ошибкой, но Rails может молча продолжить выполнение и сохранить файл без изменений.
|
||||
|
||||
Связанный контекст: [[Environment Variables]] и [[Command Path]].
|
||||
|
||||
## Решение
|
||||
|
||||
На один запуск явно сбросить `$VISUAL` и задать рабочий редактор:
|
||||
|
||||
```bash
|
||||
VISUAL="" EDITOR="nano" bin/rails credentials:edit
|
||||
```
|
||||
|
||||
Можно заменить `nano` на любой редактор, который доступен в текущем окружении.
|
||||
|
||||
## Диагностика
|
||||
|
||||
Проверить, не установлен ли `$VISUAL`:
|
||||
|
||||
```bash
|
||||
echo "VISUAL='$VISUAL'"
|
||||
```
|
||||
|
||||
Проверить, находится ли редактор в `PATH`:
|
||||
|
||||
```bash
|
||||
which nano
|
||||
```
|
||||
|
||||
Если используется GUI-редактор вроде `code` или `zed`, отдельно проверить, что его CLI-команда доступна из той же shell-сессии, где запускается Rails.
|
||||
|
||||
## Практический вывод
|
||||
|
||||
Для `credentials:edit` важен не только `$EDITOR`, но и `$VISUAL`. Если Rails ведёт себя так, будто файл был сохранён без редактирования, сначала проверить переменные окружения редактора и доступность команды редактора через `PATH`.
|
||||
-21
@@ -1,21 +0,0 @@
|
||||
---
|
||||
status: processing
|
||||
type: moc
|
||||
tags:
|
||||
- programming
|
||||
- ruby-on-rails
|
||||
created: 2025-12-17
|
||||
updated: 2026-05-29
|
||||
title: Ruby On Rails
|
||||
---
|
||||
|
||||
# Ruby On Rails
|
||||
|
||||
%% Begin Waypoint %%
|
||||
- [[Active Storage]]
|
||||
- [[API импорт в Rails через runner]]
|
||||
- [[Capistrano deploy через systemd]]
|
||||
- [[Rails credentials edit не открывает редактор]]
|
||||
- [[Sidekiq - основа работы]]
|
||||
|
||||
%% End Waypoint %%
|
||||
Reference in New Issue
Block a user