2016-11-13 171 views
0

我将数据库从mysql更改为postgre。由于数据库中没有数据,我只是删除了每个应用程序的迁移文件夹。当我跑makemigrations事后,虽然,我得到这个错误:删除Django迁移

/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

我老实说不知道为什么错误会在没有任何代码被改变的情况下发生。但是,请尝试在/theme/admin.py文件的第2行中将'from models import'更改为'from .models import'。 –

+0

这是我第一次尝试。同样的结果。 –

+1

你能告诉我们你的项目目录树吗? – Enix

回答

0

只是在更改数据库类型时删除迁移不会解决问题。在您的settings.py文件中,您必须将默认数据库设置更改为指向新的PostgreSQL数据库,并指定模式,数据库用户名和密码等。也许您还没有这样做?

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模块,你可以从它导入。