Только изучаю Web разработку, поэтому просьба сильно не пинать за глупые вопросы . Допустим есть некий сайт интернет магазина, где юзеры загружают некоторые картинки, например фото товара. Вопрос где правильнее хранить файлы картинок? С одной стороны не хочется нагружать БД, но с другой стороны у нас получается ещё одна точка изменяемых данных. Для переноса на другой хостинг мне нужно отдельно тянуть минимум 4 вещи: 1. Код из git 2. БД 3. Настройки БД (под вопросом, т.к. параметры БД можно просаживать также через git, а также более гибко использовать DNS) 4. Папку с картинками Понимаю, что в разных фреймворках это уже реализовано, но мне интересен именно идеологический момент, как правильнее, и, что самое главное, почему именно так.
файлы лучше хранить как файлы, то есть п 4., в БД хранить только пути к ним почему? потому что например файлы хорошо кешируются как статика, чего не скажешь когда из БД отдавать будешь + возникает 100500 проблемой при работе с БД... сохранить туда, извлечь.. то-се, ну и база распухнет - мама не горюй, а оно вам надо? + всегда можно написать некий адаптер, чтоб файлы например не локально у вас на хосте хранились а например в хранилище амазона S3, или еще где насчет деплоя на сервер - папка с картинками - это файлы, их видит git БД - в фреймворках это делается с помощью миграций настройки БД - первый раз слышу........ обычно все настраивается раз на хосте и все... потом тока данные обновляются
Спасибо. Я думал по обращению))) Не совсем понял идею. Ведь мы там тоже должны придумать некий код, который будет отдавать файлы. И к нему будут те же вопросы))) Да, но почему то везде вижу эти папки в .gitignore. Обоснования вижу два: разбухание гит репозитария (фактически временными данными, этот вариант слышал от многих) и то, что push нужно будет делать со стороны хостинга, а к нему не всегда есть доверие с точки зрения безопасности. Не совсем понял. Можно по подробнее, куда смотреть? Имеется ввиду вопрос смены хостинга или просто переезда на другой сервер. Ну и docker, как частный случай переезда.
ну в Laravel - php artisan migrate .. а вообще почитай лучше что там и к чему) че-то какие то ужасы.. вы разработку на сервере рабочем будете делать и код пушить в репу??? обычно на продакшене забирают мастер ветку,
Нет. Я имею ввиду, что файлы, загруженные пользователями, при переезде на другой хостинг, нужно тянуть за собой. Или просто файликами тянуть, или файликами через гит (вот тут и получается непонятный пуш), или в БД.