Масштабирование или избежание миграции при использовании Django 2.x? - PullRequest
0 голосов
/ 29 марта 2019

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

Так что мой вопрос в 2 раза.

  1. Разве вы не можете использовать Django 2.0 без миграции, поскольку я не думаю, что он будет хорошо масштабироваться и не будет соответствовать конвейеру CI / CD?
  2. Если мы не можем избежать миграций db, то как мы можем интегрировать их в надежный конвейер CI / CD, где модель может быть изменена разными разработчиками из разных команд.

Ответы [ 2 ]

2 голосов
/ 29 марта 2019

Да, вы можете.Вы можете создавать свои таблицы вручную и настроить Django, чтобы не управлять своими таблицами.

После того, как ваш проект Django настроен, просто запустите на вашем терминале python manage.py inspectdb > models.py, и django выберет модели в сконфигурированной базе данных.Это особенно хорошо, если ваш проект будет использовать уже существующую или унаследованную базу данных

Затем вы можете указать django не управлять вашими таблицами в мета-опциях модели:

class MyModel(models.Model):
    # your fields here

    class Meta:
       managed = False

См. Документы здесь

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

0 голосов
/ 29 марта 2019
  1. Миграции не являются обязательными, неясно, что, по вашему мнению, изменилось в 2.0, чтобы сделать их такими.

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

...