2017-02-08 12 views
1

Я только начинаю с Django. Мне нравится взламывать вещи, поэтому наряду с учебным пособием я также создаю собственное экспериментальное приложение. Выяснилось, что я хочу изменить название экспериментального приложения и связанного с ним проекта.Django 1.10 не обнаруживает изменений в моих моделях и не создает миграции

В ходе работы над этим я решил отказаться от текущей базы данных и начать все сначала. Что-то пошло не так, я не помню, что. Прошло уже несколько часов, проделав здесь прогресс, погубив туда.

Ситуация, в которой я сейчас сейчас живу, заключается в том, что Django не замечает изменений в моем models.py. В настоящее время нет никаких миграций, перечисленных для приложения, когда я запускаю manage.py showmigrations, хотя само приложение указано в списке.

Я попытался удалить каталог миграций, изменив содержимое файла models.py и их комбинации, а также попробовать различные команды manage.py, которые выглядели многообещающими. Пока ничего не получилось.

Итак, что я могу сделать неправильно? Помните, что я изменил имя приложения, которое включает в себя изменение имени каталога, в котором оно хранится, а также имя базы данных. Поиск и замена выполнялись в файлах в проекте и приложении. settings.py был полон, но все, о чем я знаю, похоже, отлично.

Спасибо!

+0

Что 'manage.py makemigrations new_app_name' дать вам? –

+0

@AndreyShipilov: 'App 'new_app_name' не удалось найти. Это в INSTALLED_APPS? ' – MadEmperorYuri

+0

Это имя приложения, которое вы переименовали в ... –

ответ

1

Предполагаете, вы изменили название своего приложения в файле settings.py? И когда вы говорите, что вы изменили свое название приложения, вы начали новое приложение или новый проект ... смысл, когда вы начинаете вы это делаете:

django-admin.py startproject myproject 

Запуск startproject дает следующую папку и файловую структуру:

 
    ├── manage.py 
    └── myproject 
     ├── __init__.py 
     ├── settings.py 
     ├── urls.py 
     └── wsgi.py 

Оттуда вы можете запустить

python manage.py startapp myapp 

Это сделает вашу структуру папок выглядеть следующим образом:

 
    ├── manage.py 
    ├── my_django15_project 
    │ ├── __init__.py 
    │ ├── settings.py 
    │ ├── urls.py 
    │ └── wsgi.py 
    └── myapp 
     ├── __init__.py 
     ├── models.py 
     ├── tests.py 
     └── views.py 

Оттуда вы можете изменить свое приложение, изменив имя папки «myapp» на «mynewapp», а затем изменив параметры settings.py, чтобы иметь «mynewapp», указанный в разделе INSTALLED_APPS.

После этого следует запустить

pythonmanage.py makemigrations mynewapp 

Убедитесь, что он делает файлы миграции

затем запустить

python manage.py migrate 

Если вы изменили MyProject папку с новым именем, например, mynewproject, я бы предложил попробовать изменить его имя, затем запустить

django-admin.py startproject mynewproject 

после этого обновите эти файлы соответствующим образом и скопируйте свою папку myapp в папку mynewproject.

Некоторые другие вещи, которые вы можете проверить, это то, что ваши коннекторы базы данных верны, а также попробуйте перезагрузить свой веб-сервер.

Если ничего из этого не работает, вам нужно будет дать мне немного больше информации, так что оставьте меня комментарий и дайте мне знать

Good Luck

+0

Когда я решил переименовать вещи, я решил просто изменить имя папки приложения и запустить поиск и заменить все файлы моего приложения. Я выбрал это, потому что это казалось проще, чем копировать мой код из старого приложения в новый. Я попробую сделать совершенно новое приложение и переместить мой код. Я сохраню проект, с которым я работал. Если это не сработает, я попробую новый проект. – MadEmperorYuri

+0

Переделать приложение и переместить код, казалось, сделали это. Это включало очистку базы данных. Спасибо Тиму! – MadEmperorYuri

+0

Нет проблем, я рад, что это сработало. Я не уверен, почему вам пришлось пройти через это, так как я сделал то, что вы заявили (переименовать, найти и заменить), и у меня не было проблем, однако есть так много всего, что я мог подумать, что, вероятно, проще предложить это :) Удачи, изучая django, это отличная структура. –

 Смежные вопросы

  • Нет связанных вопросов^_^