django mysql syncdb не создает таблицы в models.py



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



python manage.py syncdb


Я не получил никакой ошибки, но таблицы, указанные в models.py не создаются. Создаются только следующие таблицы:



[ec2-user@domU-12-31-39-0F-D2-F3 prototype]$ python manage.py syncdb
Syncing...
Creating tables ...
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_user_permissions
Creating table auth_user_groups
Creating table auth_user
Creating table django_content_type
Creating table django_session
Creating table django_site
Creating table django_admin_log
Creating table south_migrationhistory


Кто-нибудь знает, почему?

588   4  

4 ответов:

Похоже, что вы используете Юг. Обычно South будет препятствовать созданию большинства таблиц в syncdb, и вы должны будете запустить свои миграции на юг, чтобы создать их в первый раз. Это делается для того, чтобы Юг мог отслеживать состояние ваших таблиц и применять любые специальные правила миграции, которые у вас есть, даже изначально.

Другая возможность заключается в том, что у вас нет всех ваших приложений, перечисленных в переменной INSTALLED_APPS в файле настроек.

У вас установлен юг.

При запуске python manage.py syncdb он синхронизирует все неуправляемые приложения.

Запустите python manage.py migrate, чтобы синхронизировать другие приложения.

Это учебник, который я прогнал через некоторых моих коллег (официальные южные документы более глубоки, у меня было 15 минут, чтобы получить их на юге и продуктивно): https://gist.github.com/fyaconiello/2423447

Также может быть так, что вы унаследовали свой класс модели от объекта, а не от моделей.Модель

Таблица не будет создана. И никакая ошибка не будет поднята

Я нашел другое решение:

  1. Создайте другую базу данных, например db2
  2. измените ваш DATABASES['default'] в настройках укажите на эту БД
  3. для последней версии Django просто запустите python manage.py мигрировать

Это создаст новую и понятную структуру БД

  1. вам нужно переместить необходимые таблицы, для mysql: ALTER table db1.table_name RENAME db2.table_name

Вот и все, спасибо

Comments

    Ничего не найдено.