Comments 3
Зачем тащить с собой миграции и разбираться в их зависимостях, а не сквошнуть? Практическая ценность, как история изменения схемы весьма сомнительна.
По реализации не буду комментировать, позволю себе лишь заметить, что очень странно использовать сторонний сервис, генерируя и загоняя в него текстовый формат graphviz, а не сразу использовать его модуль для генерации той же svg.
Во первых по миграциям. Собственно с попытки сквошнуть все и началось. Джанга радостно взялась сжать миграции и радостно выдала ошибку - циклическая ссылка. Начал разбираться. А поскольку проект уже долгоживущий и файлов миграций несколько сотен - возникла необходимость разобраться со взаимозависимостями. В результате сжал часть миграций, которые не сильно пересекались между собой. Порядка 60 файлов сократил. Но понял, что в принципе это не имеет особого смысла. Потому как если Вы в проекте не занимались тем, что создали таблицу - удалили таблицу, создали поле - удалили поле, то сквош миграций по большому счету не уменьшает количества операций. А как следствие - не уменьшает времени выполнения миграций. Помочь может только замена ряда миграций на "create table". Но это уже сильно нужно все перелопачивать. И опять же - имея такую схему делать много проще.
У меня этот проект мало того что долгоживущий, еще и установлен у пары десятков заказчиков в разных версиях, и обновляться они не спешат.
Ну а по поводу использования внешнего сервера для диаграмм - я сказал в тексте. В этом смысле установить себе в качестве зависимости request более целесообразная вещь. А с помощью этого сервиса можно строить МНОГО РАЗНЫХ диаграмм, зная как.
Я же пример показал. А далее - все в Ваших руках!
При сквоше полезно видеть зависимости миграций между приложухами. Без них можно нарваться на циклическую зависимость
Создаем диаграмму миграций Django проекта