2016-11-13 5 views
0

Я изменил базы данных с mysql на postgre. Поскольку данных еще не было, я просто удалил папки миграции для каждого из приложений. Когда я побежал makemigrations потом, хотя, я получил эту ошибку:Удалить Django Migrations

/theme/admin.py", line 2, in <module> 
from models import theme, theme_file 
ImportError: No module named 'models' 

Все работало отлично до того, ничего не изменилось в коде, кроме папки миграций очищаемой.

Любые идеи?

/Users/jl/.virtualenvs/bolts3/bin/python /Users/jl/Desktop/Bolts/manage.py runserver 8000 
    Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x108e15ae8> 
    Traceback (most recent call last): 
     File "/Users/jl/.virtualenvs/bolts3/lib/python3.5/site-packages/django/utils/autoreload.py", line 226, in wrapper 
     fn(*args, **kwargs) 
     File "/Users/jl/.virtualenvs/bolts3/lib/python3.5/site-packages/django/core/management/commands/runserver.py", line 113, in inner_run 
     autoreload.raise_last_exception() 
     File "/Users/jl/.virtualenvs/bolts3/lib/python3.5/site-packages/django/utils/autoreload.py", line 249, in raise_last_exception 
     six.reraise(*_exception) 
     File "/Users/jl/.virtualenvs/bolts3/lib/python3.5/site-packages/django/utils/six.py", line 685, in reraise 
     raise value.with_traceback(tb) 
     File "/Users/jl/.virtualenvs/bolts3/lib/python3.5/site-packages/django/utils/autoreload.py", line 226, in wrapper 
     fn(*args, **kwargs) 
     File "/Users/jl/.virtualenvs/bolts3/lib/python3.5/site-packages/django/__init__.py", line 27, in setup 
     apps.populate(settings.INSTALLED_APPS) 
     File "/Users/jl/.virtualenvs/bolts3/lib/python3.5/site-packages/django/apps/registry.py", line 115, in populate 
     app_config.ready() 
     File "/Users/jl/.virtualenvs/bolts3/lib/python3.5/site-packages/django/contrib/admin/apps.py", line 23, in ready 
     self.module.autodiscover() 
     File "/Users/jl/.virtualenvs/bolts3/lib/python3.5/site-packages/django/contrib/admin/__init__.py", line 26, in autodiscover 
     autodiscover_modules('admin', register_to=site) 
     File "/Users/jl/.virtualenvs/bolts3/lib/python3.5/site-packages/django/utils/module_loading.py", line 50, in autodiscover_modules 
     import_module('%s.%s' % (app_config.name, module_to_search)) 
     File "/Users/jl/.virtualenvs/bolts3/lib/python3.5/importlib/__init__.py", line 126, in import_module 
     return _bootstrap._gcd_import(name[level:], package, level) 
     File "<frozen importlib._bootstrap>", line 986, in _gcd_import 
     File "<frozen importlib._bootstrap>", line 969, in _find_and_load 
     File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked 
     File "<frozen importlib._bootstrap>", line 673, in _load_unlocked 
     File "<frozen importlib._bootstrap_external>", line 662, in exec_module 
     File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed 
     File "/Users/jl/Desktop/Bolts/theme/admin.py", line 2, in <module> 
     from models import theme, theme_file 
    ImportError: No module named 'models' 
+0

Я честно не знаю, почему произошла ошибка без изменения кода. Но, пожалуйста, попробуйте изменить «из импорта моделей» на «из импорта .models» в строке 2 вашего файла /theme/admin.py. –

+0

Вот что я пробовал в первую очередь. Тот же результат. –

+1

можете ли вы показать нам дерево вашего проекта? – Enix

ответ

0

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

DATABASES = { 
'default': { 
    'ENGINE': 'django.db.backends.postgresql', 
    'NAME': 'mydatabase', 
    'USER': 'mydatabaseuser', 
    'PASSWORD': 'mypassword', 
    'HOST': '127.0.0.1', 
    'PORT': '5432', 
} 

}

См: https://docs.djangoproject.com/en/1.10/ref/settings/

0

Мммм, казалось бы, как вы удалили файл __init__.py случайно?

Помните, что папка должна иметь такой файл как модуль python, а когда папка - это модуль python, который вы можете импортировать из него.