Назад | Перейти на главную страницу

Проекты GIT и Django

У меня два сервера, Dev сервер и Production сервер. В Production на сервере работает живой сайт Django, а Dev На сервере есть копия проекта Django. Я использую Dev сервер для работы на сайте Django, внесения улучшений, исправления ошибок и т. д. Как только я буду удовлетворен тем, как Dev версия работает, я перемещаю весь каталог Django из Dev сервер и замените тот же каталог на Production сервер. Два сервера не в той же локальной сети, поэтому процесс непростой.

С этим у меня есть несколько проблем.

  1. Перемещение всего каталога трудоемко и требует много времени
  2. Если я изменю всего несколько файлов, это даже шаг утомительно заменить несколько файлов, чем весь каталог, так как проект становится довольно большим, и я беспокоюсь, что что-то пропущу
  3. Я часто сталкиваюсь с проблемами разрешения после перемещения вещей
  4. Это супер неэффективно, и из-за нехватки времени я не стал придумывать новый метод. Теперь это просто выходит из-под контроля, и мне нужно исправить ситуацию.

Я думаю, мне нужно перейти в репозиторий GIT для этого процесса. Но мой вопрос в том, как мне все это настроить?

Спасибо за помощь :)

Я занимаюсь разработкой Django и GIT 18 месяцев. В течение этого периода я пытался разместить у себя репозиторий git, а сегодня я использую GITHUB для работы. Это проще и экономит время за небольшие деньги. Взгляните на мои соображения:

  • Если вы не являетесь экспертом по Linux с опытом работы с GIT, дешевле (учтите, что время - деньги) разместить свой проект на GITHUB. У них есть бесплатный хостинг GIT для публичных проектов (любой может их клонировать / форкнуть). У них также есть (дешевый) платный хостинг GIT, если вы хотите иметь частный репозиторий.

  • GITHUB (или другая хостинговая компания GIT) упростит настройку репозиториев, чтобы вы могли научиться работать с GIT по мере его использования (другими словами, из-за веб-интерфейса вам не нужно изучать больше, чем команду basig GIT синтаксис строки перед использованием GIT)

  • GIT - это система версий с распределенным контролем. Это означает, что каждое место, куда вы помещаете копию своего репозитория, будет иметь полную историю всего вашего кода, поэтому, если вы решите разместить свой собственный сервер GIT, не имеет значения размещать сервер DEV или PRD. Фактически, вы можете поместить его в свой собственный блокнот, не опасаясь потери данных, потому что у вас есть копия в DEV и PRD. Имейте в виду, что вы должны делать PULL-запросы на вашем DEV и на вашем сервере PRD с вашего сервера GIT.

  • Легко создавать сценарии FABRIC для обновления сервера DEV или PRD с вашего собственного компьютера. Все, что вам нужно сделать, это иметь что-то вроде этого в вашем fabfile.py:

    def deploy_production():
        with cd('/home/my_user/my_project'):
            run("git pull") # update to the newest version
            with prefix('source ~/.virtualenvs/my_env/bin/activate'):
                run('./manage.py collectstatic --noinput')
    def production():
        """
        Sets environment to production
        """
        continue = confirm('Updating the production environment, continue?', default=False)
        if not continue:
            abort('Good bye - thanks for doing nothing on production!')
        env.hosts = ['my_server.my_domain.com.br']
        env.key_filename = ['~/amazon/my_ssh_key.pem']
        env.user = 'ubuntu'

    # Use this to run fabric update procedure:
    fab production deploy_production
  • Используйте virtualenv и virtualenvwrapper
  • создайте файл с именем '.gitignore' в корне проекта и поместите файл (или шаблоны файлов), которым вы не хотите управлять через GIT, например: * .pyc, .idea, .DS_Store (по одному на строку)

Надеюсь, это поможет, хороший взгляд!

Если вы найдете эти ответы полезными, присвойте баллы.

Я предлагаю вам использовать систему управления исходным кодом, такую ​​как git, как вы упомянули, выполнять свою работу локально и взглянуть на Ткань для развертывания. Ты можешь использовать git checkout-index чтобы экспортировать код локально (через код в fabfile) перед его отправкой на сервер с помощью команды типа fab dev deploy. Когда вы будете готовы к развертыванию в производственной среде fab prod deploy. Вы можете поместить код в fabfile, чтобы переместить исходный код в нужное место, обновить зависимости, такие как Django (например, через pip), перезапустить uwsgi и т. Д.