django syncdb и обновленная модель

Я решил, что должен был взглянуть на tree.com и фигура, почему она не уважает установку Unicode консоли. Оказывается, что (как многие утилиты файла командной строки), это пользуется библиотекой, названной ulib.dll, чтобы сделать всю печать (а именно, TREE::DisplayName вызовы WriteString в ulib).

Теперь, в ulib, WriteString метод реализован в двух классах, SCREEN и STREAM. SCREEN использование версии WriteConsoleW непосредственно, таким образом, все символы Unicode правильно отображены. STREAM версия преобразовывает текст Unicode в одну из трех различных кодировок (_UseConsoleConversions в ‡’ консольная кодовая страница (GetConsoleCP), _UseAnsiConversions в ‡’ кодовая страница ANSI по умолчанию, иначе в ‡’ кодовая страница OEM по умолчанию), и затем выписывает это. Я не знаю, как изменить режим преобразования, и я не полагаю, что преобразование может быть отключено.

я только посмотрел на это кратко, поэтому возможно, более предприимчивые души могут говорить больше об этом!:-)

85
задан Hellnar 22 October 2009 в 08:04
поделиться

4 ответа

Начиная с Django 1.7 и далее

Django имеет встроенную поддержку миграции - посмотрите документацию .

Для Django 1.6 и более ранних

Django не поддерживает миграции из коробки. Однако есть подключаемое приложение для Django, которое делает именно это, и оно отлично работает. Он называется Юг .

100
ответ дан 24 November 2019 в 08:22
поделиться

Давно не использовал django, но, кажется, помню, что syncdb действительно выполняет команды alter для таблиц db. вам нужно отбросить таблицу, затем запустить ее снова, и она будет создана снова.

edit: извините, не выполняет alter.

2
ответ дан 24 November 2019 в 08:22
поделиться

В настоящее время Django не делает этого автоматически. Возможны следующие варианты:

  1. Удалить таблицу из базы данных, затем воссоздать ее в новой форме с помощью syncdb.
  2. Распечатать SQL для базы данных с помощью python manage.py sql (appname) , найти добавлена ​​строка для поля и добавлена ​​вручную с помощью команды SQL alter table . (Это также позволит вам выбрать значения поля для ваших текущих записей.)
  3. Используйте Юг (согласно ответ Доминика ).
14
ответ дан 24 November 2019 в 08:22
поделиться

Выполните следующие действия:

  1. Экспортируйте данные в прибор с помощью команды управления dumpdata
  2. Отбросьте таблицу
  3. Запустите syncdb
  4. Перезагрузите данные из прибора с использованием команды управления loaddata
11
ответ дан 24 November 2019 в 08:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: