Посты с тэгом manage.py


Своя команда manage.py в Django

У Django есть замечательный инструмент — manage.py, что позволяет из командной строки выполнять массу полезных вещей. Мы часто пользуемся этими командами, выполняя миграцию баз данных, запуская тестовый сервер и т.д.

В этой статье речь пойдёт о том, как сделать пользовательскую команду manage.py для своего приложения.

Простая команда manage.py

В корне своего Django application разместите каталог management, что должен содержать __init__.py и каталог commands. Внутри commands расположите 3 файла:

__init__.py
_private.py
mycustomccmd.py

Код Вашей команды должен быть расположен в mycustomccmd.py. Как минимум, этот файл должен содержать определённый пользователем класс Command, что наследуется от django.core.management.base.BaseCommand.

Вот примерный



Заметка на полях - custom sql в Django.

Задача - при развертывании схемы Django на базу создавать триггер на таблицу. Пошел по стандартному пути - создал в директории приложения папку sql, положил туда файл имя_модели.sql Выполняю manage.py syncdb - ошибка ORA-0900, ругается на неправильный код. При выполнении того же кода в sqlplus - никаких ошибок. Посмотрел через sqlcustom - код вменяемый. Напрягло только наличие пустых строк в коде, а этого тот же sqlplus не переносит. Убрал все переводы строк - текст триггера стал выглядеть отвратно, но теперь он выполняется. Бинго!
Вывод - при создании хранимых процедур, функций и пакетов проверяйте скрипты через sqlcustom - вывод не должен содержать пустых строк.

Нашел также еще один баг - в скрипте создания триггера джанго вырезал последний символ

;
Простановка в конце пробелов не помогла, поставил костыль - еще одну точку с запятой. Пока помогло, но чувствую, что нужно набросать свой скрипт развертывания.