трудности новичка, использующие юг с pycharm - DatabaseError: нет такой таблицы: south_migrationhistory - PullRequest
15 голосов
/ 26 февраля 2012

Я использую sqlite3 и pycharm, чтобы узнать больше о django, и гуглюл, чтобы найти, что юг рекомендуется, чтобы упростить изменение моделей после их создания.

Я пытаюсь следовать совету по http://south.aeracode.org/docs/tutorial/part1.html#starting-off.

Наибольший успех, который у меня был до сих пор, - это создание простой модели и запуск syncdb перед добавлением на юг в instal_apps. Таким образом создаются начальные таблицы, и я получаю возможность создать суперпользователя. (Администратор Django, кажется, беспокоится, если нет пользователей).

Затем я добавляю юг в instal_apps и запускаю django_manage.py schemamigration bookmarks --initial

Кажется, работает нормально. Создается новый каталог, называемый миграцией, с несколькими файлами в папке моего приложения и ободряющим сообщением «Создано 0001_initial.py. Теперь вы можете применить эту миграцию с помощью: ./manage.py перенести закладки»

Следующий шаг - django_manage.py "Перенос закладок генерирует следующее сообщение об ошибке django.db.utils.DatabaseError: нет такой таблицы: south_migrationhistory.

Я думал, что таблица будет создана на первом этапе схемы миграции. Что мне не хватает? Кто-нибудь может помочь?

Marg

Ответы [ 3 ]

29 голосов
/ 26 февраля 2012

Юг использует собственную таблицу, чтобы отслеживать, какие миграции были применены.Прежде чем вы сможете применить какие-либо миграции, это должно быть создано с использованием python ./manage.py syncdb.

. Помимо настройки на юг, вы найдете syncdb, иногда необходимый для приложений, не относящихся к югу, в вашем проекте, напримерочень распространенный django.contrib.auth.

Обратите внимание, что для удобства вы можете запускать оба за один раз, как это

python ./manage.py syncdb --migrate
2 голосов
/ 27 февраля 2012

Мое последнее (безуспешное) усилие было следующим:

  1. Создание приложения - synb db - суперпользователь создан
  2. Тестовый запуск - на экране admin отображаются основные таблицы
  3. Добавитьна юг и syncdb из командной строки с созданием таблицы manage.py syncdb - south_migrationhistory.Добавить базовую модель vanilla
  4. Пробовал различные комбинации manage.py syncdb –manage и schemamigration из Pycharm (при запуске из pycharm в приложении создается каталог миграции - при запуске из командной строки каталог не выполняетсякажется, что он создан.)
  5. На экране администратора Django отображается таблица - но если я пытаюсь отредактировать таблицу, она говорит, что она не существует
  6. Проверьте структуру базы данных с помощью браузера SQLite - таблица для новыхсозданная модель не существует

Я начинаю думать, что все это не стоит потраченных впустую хлопот - возможно, мне лучше просто изменить таблицы в браузере SQLite

0 голосов
/ 26 февраля 2012

Ответ на аналогичный вопрос :

Запустите syncdb, чтобы добавить таблицы Django и South в базу данных.

...