Используя YAML :: store, удаляются ли обновленные yml-файлы в рабочей среде при развертывании обновленного приложения? - PullRequest
0 голосов
/ 03 сентября 2018

Я использую YAML :: store для хранения списка строк, и я не хотел использовать базу данных, чтобы ограничить потребность в SQL-запросах. Строки могут быть добавлены или обновлены пользователями с правами администратора. Мне было интересно, будет ли файл .yml обновляться в производственной среде и удаляются ли данные при развертывании обновленной версии приложения в рабочей среде.

1 Ответ

0 голосов
/ 03 сентября 2018

Я использую рельсы YAML :: store ...

YAML :: Store не является частью Rails, а является стандартной стандартной библиотекой Ruby.

Мне было интересно, будет ли файл .yml обновляться в производственной среде и удаляются ли данные при развертывании обновленной версии приложения в рабочей среде.

YAML :: Store просто записывает в файл по вашему выбору. Что происходит с этим файлом, полностью зависит от процесса развертывания и производственной среды. Если вы работаете на своем собственном сервере или на одной виртуальной машине, это, вероятно, безопасно. Если это облачный сервис, такой как Heroku , любые файлы, скорее всего, небезопасны.

Я не хотел использовать базу данных для ограничения потребности в запросах SQL.

Это, вероятно, плохой компромисс. YAML :: Store должен загружать и анализировать весь файл каждый раз, когда его читают. Любые изменения означают переписывание всего файла. Чем больше размер файла, тем хуже и хуже.

Хуже того, использование локальных файлов ограничивает вас одним экземпляром вашей программы. Это означает, что вы не можете увеличить масштаб, добавив другой производственный экземпляр.

Напротив, простые запросы к базе данных являются чрезвычайно быстрыми и надежными. Нет никакого беспокойства о том, будет ли локальный файл уничтожен. Любое количество экземпляров может подключаться к базе данных. И базы данных также могут быть масштабированы, чтобы иметь несколько экземпляров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...