Предположим что вы используете несколько баз данных в вашем проекте, одна из них основная, другая уже содержит какие-то данные.
При работе с основной БД вы часто будете использовать команды:
$ django-admin migrate ...
$ django-admin flush
Эти команды непосредственно влияют на структуру и содержимое БД, migrate – синхронизирует базу с миграциями, flush – удаляет все данные из таблиц.
managed = False исключает БД из влияния на нее миграций и очистки таблиц т.е. вы можете выполнять эти действия не опасаясь за сохранность существующих данных и структуры существующей базы. В остальном Django работает с этими моделями в привычном режиме.
class YourModel(models.Model):
name = models.CharField(max_length=255)
class Meta:
managed = False
Другие публикации из блога
Как сгенерировать SECRET_KEY в Django?
Заходим в терминал:
python manage.py shell
Импортируем utils:
from django.core.management import utils
Гене…
Подробнее
Шифр Цезаря на Python
Более подробное описание в статье Build a Caesar Cipher in Python
Подробнее
Ошибка при остановке Docker контейнера вида: ERROR: for *** cannot stop container: *** permission denied
Ошибка возникает при запуске и остановке контейнера, а также при попытке его повторной сборки. Имеет примерно такой вид…
Подробнее
Как удалить удалить содержимое папки в Python?
from pathlib import Path
import shutil
shutil.rmtree('/path/to/your/folder', ignore_errors=True)
Path('/path/to/…
Подробнее
Как выгрузить\восстановить базу данных PostgreSQL из Docker-контейнера
Выгрузить SQL дамп базы
docker exec -i pg_container_name /bin/bash -c "PGPASSWORD=pg_password pg_dump --username p…
Подробнее
Inline цикл for с условиями в Python
my_list = [1, 2, 3, 4, 5]
print([item for item in my_list if item > 2])
# [3, 4, 5]
Подробнее