У меня есть модель, которая имеет поле URLField, и мне нужно сделать миграцию, которая превращает это поле в внешний ключ, где строка является уникальным полем другого объекта и , если объект не существует, создайте его.django migrate from URLField для внешнего ключа без юга
, например, превратить это:
class Event_UserVisit(Event_Base):
dest_url = models.URLField(max_length=1000)
в этом:
class Event_UserVisit(Event_Base):
dest_url = models.ForeignKey(Page)
Я никогда не делал ручной миграции, как это и не нашел учебник или инструкции, чтобы сделать что-то вроде это.
очевидно проделывают наивные ошибки обратной миграции, как это:
django.db.utils.ProgrammingError: column "source_url_id" cannot be cast automatically to type integer
что самый лучший подход, чтобы сделать это?
примечание: мне нужно сделать это на производственной базе данных с большим количеством данных, поэтому я не могу долгое время простоя и не могу потерять данные.
спасибо! :)
Какую версию Django вы используете? syncdb был «устарел» и заменен мигрированием в Django версии 1.7+. Рекомендуется использовать собственный встроенный инструмент миграции Django на юг. Оба созданы Эндрю Годвином. https://docs.djangoproject.com/en/1.8/topics/migrations/ –
1.8, но я использую migrate, а не syncdb, без юга. Я думаю, что проблема законна, например, это не то, что я делаю неправильно с django, это просто то, что я не знаю, как делать с django. Это не тривиальная миграция для преобразования поля URL в внешний ключ существующих/новых объектов. спасибо :) –