我正在使用django
,现在我将一个python文件从custom_fields
重命名为fields
并更改了一个Model类,而Model类正在使用一个来自{的字段{1}}文件,但是当我运行
fields
存在这样的错误:
python manage.py makemigrations
我不知道如何解决这个错误,所以我尝试删除Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/Users/smy/wuque/projects/LinuxChat/Server/lib/python2.7/site-packages/django/core/management/__init__.py", line 350, in execute_from_command_line
utility.execute()
File "/Users/smy/wuque/projects/LinuxChat/Server/lib/python2.7/site-packages/django/core/management/__init__.py", line 342, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/smy/wuque/projects/LinuxChat/Server/lib/python2.7/site-packages/django/core/management/base.py", line 348, in run_from_argv
self.execute(*args, **cmd_options)
File "/Users/smy/wuque/projects/LinuxChat/Server/lib/python2.7/site-packages/django/core/management/base.py", line 399, in execute
output = self.handle(*args, **options)
File "/Users/smy/wuque/projects/LinuxChat/Server/lib/python2.7/site-packages/django/core/management/commands/makemigrations.py", line 65, in handle
loader = MigrationLoader(None, ignore_no_migrations=True)
File "/Users/smy/wuque/projects/LinuxChat/Server/lib/python2.7/site-packages/django/db/migrations/loader.py", line 49, in __init__
self.build_graph()
File "/Users/smy/wuque/projects/LinuxChat/Server/lib/python2.7/site-packages/django/db/migrations/loader.py", line 170, in build_graph
self.load_disk()
File "/Users/smy/wuque/projects/LinuxChat/Server/lib/python2.7/site-packages/django/db/migrations/loader.py", line 105, in load_disk
migration_module = import_module("%s.%s" % (module_name, migration_name))
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/Users/smy/wuque/projects/LinuxChat/Server/LinuxChatServer/Server/migrations/0005_auto_20151215_1223.py", line 5, in <module>
import Server.custom_fields
ImportError: No module named custom_fields
文件夹,但是当我再次运行上面的命令时,无法检测到任何更改,即使我再次修改Model类。只是显示:
migrates
现在我无法修改数据库表,任何人都可以告诉我如何解决这个问题?谢谢!
答案 0 :(得分:2)
makemigrations
以应用将直接影响数据库底层结构的更改。
重命名python文件对数据库没有任何影响,因为字段的 type 没有改变,因此它不会对数据库产生任何影响。你最终看到的是你的python文件中的一个不同的导入。
答案 1 :(得分:1)
如果您是第一次迁移该应用,则必须使用:
manage.py makemigrations myappname
一旦你这样做,你可以这样做:
manage.py migrate
在项目文件夹中运行makemigrations意味着它将查找更新与项目的settings.py中包含的所有应用程序相关的所有表。一旦你包含它,makemigrations将自动包含应用程序(这节省了大量的工作,因此你不必为你的项目/网站中的每个应用程序运行makemigrations app_name。)
如果您对这些步骤中的任何一个感到困惑,请阅读迁移文件。更改它们以更正您的架构或删除不需要的文件,但不要忘记更改下一个迁移文件的依赖项部分。