Могу ли я использовать файловую базу данных на Heroku?
У меня есть небольшое приложение Node.js / Express, развернутое в Heroku.
Я хотел бы использовать легкую базу данных, такую как NeDB, чтобы сохранить некоторые данные. Можно ли периодически выполнять резервное копирование / копирование файла из Heroku, если я использовал этот подход?
1 ответ
Файловые базы данных не подходят для Heroku из-за ее эфемерной файловой системы (выделено жирным шрифтом):
Каждый dyno получает свою собственную эфемерную файловую систему со свежей копией самого последнего развернутого кода. В течение времени существования динамометрического стенда его запущенные процессы могут использовать файловую систему в качестве временной блокнота, но записанные файлы не видны процессам в любом другом динамометрическом стенде, и любые записанные файлы будут отброшены в тот момент, когда динамометрический блок остановлен или перезапущен. Например, это происходит каждый раз, когда динамо заменяется из-за развертывания приложения и примерно один раз в день в рамках обычного управления динамо.
В зависимости от вашего случая использования, я рекомендую использовать базу данных клиент-сервер (здесь это выглядит очень хорошо) или что-то вроде Amazon S3 для хранения файлов.