2014-11-18 3 views
0

Во время разработки моего php-приложения я сохранил все данные, которые приложение создает в папке приложения, и, следовательно, данные являются частью моего git-repo. Корень репо также является webroot. Это хорошо сработало для меня во время начала разработки, и в то время это имело смысл для фиксации приложения вместе с данными.Как правильно отделить приложение от данных?

Но я чувствую, что это нужно переделать сейчас по нескольким причинам. Одно из того, что размер данных становится слишком большим для меня, чтобы удобно хранить его в git-repo. Другим является то, что мне просто не нужно иметь моментальный снимок данных для данной фиксации. Основной причиной, я думаю, является то, что я развернул свое приложение для своего NAS (синологии) для реального использования, и я нажимаю на него с помощью webdav. И, насколько мне известно, git, невозможно или, по крайней мере, не практично делать толки, оставив некоторые данные в удаленном репо нетронутым.

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

Что было бы хорошей структурой и методами доступа к файлам и т. Д. Для этого?

+0

Теперь, когда я думаю об этом, я предполагаю, что ftp-часть действительно не имеет смысла. Я бы лучше обнаружил, где приложение запускается и задает путь к каталогу данных, и с моего компьютера он будет обращаться к папке через nfs или такой, без каких-либо дальнейших изменений в приложении. – Clox

ответ

1

Я всегда храню свои данные в отдельном каталоге, который я беру из git с файлом .gitignore. Это означает, что когда я нажимаю изменения, я не переписываю текущие данные.

Если мне нужны свежие данные для тестирования, я использую ftp для загрузки новой версии каталога данных с живого сервера на мой сервер разработки.

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

+0

Ах, звучит хорошо и просто. Одна маленькая жалоба, хотя я поместил .gitkeep-файлы в подкаталоги папки данных, чтобы, если бы я был клонировать репо и начинать свежие без данных, так сказать, папка с данными все равно была бы правильно структурирована. Есть ли способ сделать это легко, одновременно игнорируя папку? – Clox

+0

Вы можете найти то, что хотите [в этом ответе] (http://stackoverflow.com/questions/7229885/what-are-the-differences-between-gitignore-and-gitkeep) Этот ответ выглядит так, как будто он может соответствовать вашим потребностям; 'Если вы хотите пустой каталог и убедитесь, что он остается«чистым»для мерзавца, создать .gitignore, содержащий следующие строки в: # .gitignore образца #ignore все файлы в этой директории ... * # ... кроме этого один. ! .gitignore' Извините, это выглядит ужасно, я новичок в мини-Markdown –

+0

Спасибо. Теперь у меня все настроено. Возможно, лучше изменить свой ответ и добавить туда код вместо того, чтобы помещать коды в комментарии, они весьма ограничены. Кроме того, вы можете получить прямой URL-адрес для ответа, нажав кнопку «share». Я отмечаю ваш ответ как принятый. Ура! Этот ответ содержит несколько более актуальных сведений: http://stackoverflow.com/a/19005115/147949 – Clox

Смежные вопросы