Как добавить индекс (по какому-либо полю)?Могу ли я сделать это через слой модели Django?
Можно.Посмотрите на параметр Field.db_index
.
Если я хочу перенести некоторые старые данные в эти новые таблицы / модели БД, мне придется сам написать какой-нибудь скрипт илиDjango предоставляет инструменты для сопоставления схем?
Django не имеет встроенного инструмента для переноса данных.Для переноса существующих данных вам придется написать собственный скрипт.Это может быть возможным с использованием внешнего инструмента миграции (например, South, см. Ниже), но я не пробовал его.
Наконец, если мне нужно изменить схему длясуществующих моделей Django, то какой самый простой способ сделать это?Я знаю, что это зависит от моей схемы, но это так же просто, как создать новый столбец и запустить python manage.py syncdb?
Использовать инструмент миграции. Юг - один из самых популярных и эффективных.Есть и другие тоже.Использование инструмента сделает вашу жизнь намного проще по многим причинам.Например, syncdb
не будет добавлять новые столбцы, только новые таблицы.
Как мне профилировать базу данных MySQL для всех запросов, которые я запускаю из моделей Django?Я ищу что-то вроде DEBUG = True и TEMPLATE_DEBUG = True, решение, где я получу производительность запросов (время выполнения и т. Д.) В браузере.
Один из способов сделать этоэто использовать этот классический Джанго фрагмент .С помощью сниппета вы можете добавить статистику по запросам, выполненным для отображения страницы, в нижней части страницы, если установлено DEBUG
.
Обновление
Другой способотображать отладочную информацию для использования django-debug-toolbar .Спасибо @diegueus9.