Обновлять базу данных PostgreSQL каждый час с помощью скрипта Python или с помощью моделей django? - PullRequest
0 голосов
/ 16 января 2019

Я устанавливаю веб-сервер на основе Django Framework с PostgreSQL.Мне нужно обновлять модели в моем приложении Django каждый час, и мне интересно, есть ли лучший способ обновить базу данных из другого файла сценария, используя python и psycopg2, или используя сценарий, который напрямую соединяется с моделями Django, и обновляет их, используя Django API для моделей?Я использую эту базу данных только на веб-сервере Django.

Подводя итог ... Какая логика лучше?

  1. update_db.py, который содержит:

    • подключиться к базе данных через psycopg2, обновить таблицы
  2. update_db.py, который содержит:

    • подключиться к моделям приложений Django, обновить их с помощьюDjango API для моделей

Я буду запускать сценарии каждый час, используя Cron, и проект Django уже подключен к этой конкретной базе данных и работает нормально.Я просто прошу лучшей производительности и лучшего пути в логическом смысле.Данные не будут обновляться очень часто, но в них будут большие jsons.

1 Ответ

0 голосов
/ 16 января 2019

Если у вас нет веских причин поступить иначе, очевидным решением здесь является использование настраиваемой команды управления и ORM - ваш код будет в очевидном месте (для кого-то, кто должен работать надпроект), может быть протестирован как часть всего набора тестов вашего проекта, и не потребует умственного «перевода» из необработанного SQL в код Django ORM (не говоря уже о том, что у вас будет больше шансов обнаружить несоответствие междуваши модели Django и код вашего сценария, когда ваша схема изменяется - из опыта, необработанные сценарии sql, которые не тестируются, обычно забываются при миграции схемы).

FWIW, оптимизация «для производительности» не делаетдействительно имеет смысл в вашем случае, если ваши обновления не являются длинными и сложными и не блокируют доступ к сайту - но даже в этом случае издержки ORM, безусловно, не будут основным узким местом (просто убедитесь, что вы используете их правильно).

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