[英]Django models can't migrate
I'm having a models file like this:我有一个这样的模型文件:
from django.db import models
class Gin(models.Model):
objectId = models.CharField(max_length=100, unique=True)
alcohol = models.FloatField(null=True, blank=True, default=None)
name = models.CharField(max_length=100)
picture = models.CharField(max_length=200)
class GinLocal(models.Model):
objectId = models.CharField(max_length=100)
origin = models.TextField()
serve = models.TextField()
aroma = models.TextField()
The second class GinLocal is added after I run the following terminal commands:在我运行以下终端命令后添加了第二个类 GinLocal:
python manage.py makemigrations ginsdb
python manage.py migrate ginsdb
The first time it runned fine the second time when I added the second model I always get this error on the migrate command:第一次运行正常,第二次添加第二个模型时,我总是在 migrate 命令上收到此错误:
(myvenv) ➜ gins4udjango python manage.py migrate ginsdb
Operations to perform:
Apply all migrations: ginsdb
Running migrations:
Rendering model states... DONE
Applying ginsdb.0002_ginlocal...Traceback (most recent call last):
File "/Users/donpironet/Documents/Development/Private/gins4udjango/myvenv/lib/python3.5/site-packages/django/db/models/options.py", line 580, in get_field
return self.fields_map[field_name]
KeyError: <django.db.models.fields.CharField>
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/Users/donpironet/Documents/Development/Private/gins4udjango/myvenv/lib/python3.5/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
utility.execute()
File "/Users/donpironet/Documents/Development/Private/gins4udjango/myvenv/lib/python3.5/site-packages/django/core/management/__init__.py", line 345, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/donpironet/Documents/Development/Private/gins4udjango/myvenv/lib/python3.5/site-packages/django/core/management/base.py", line 348, in run_from_argv
self.execute(*args, **cmd_options)
File "/Users/donpironet/Documents/Development/Private/gins4udjango/myvenv/lib/python3.5/site-packages/django/core/management/base.py", line 399, in execute
output = self.handle(*args, **options)
File "/Users/donpironet/Documents/Development/Private/gins4udjango/myvenv/lib/python3.5/site-packages/django/core/management/commands/migrate.py", line 200, in handle
executor.migrate(targets, plan, fake=fake, fake_initial=fake_initial)
File "/Users/donpironet/Documents/Development/Private/gins4udjango/myvenv/lib/python3.5/site-packages/django/db/migrations/executor.py", line 92, in migrate
self._migrate_all_forwards(plan, full_plan, fake=fake, fake_initial=fake_initial)
File "/Users/donpironet/Documents/Development/Private/gins4udjango/myvenv/lib/python3.5/site-packages/django/db/migrations/executor.py", line 121, in _migrate_all_forwards
state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
File "/Users/donpironet/Documents/Development/Private/gins4udjango/myvenv/lib/python3.5/site-packages/django/db/migrations/executor.py", line 198, in apply_migration
state = migration.apply(state, schema_editor)
File "/Users/donpironet/Documents/Development/Private/gins4udjango/myvenv/lib/python3.5/site-packages/django/db/migrations/migration.py", line 123, in apply
operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
File "/Users/donpironet/Documents/Development/Private/gins4udjango/myvenv/lib/python3.5/site-packages/django/db/migrations/operations/models.py", line 59, in database_forwards
schema_editor.create_model(model)
File "/Users/donpironet/Documents/Development/Private/gins4udjango/myvenv/lib/python3.5/site-packages/django/db/backends/base/schema.py", line 235, in create_model
definition, extra_params = self.column_sql(model, field)
File "/Users/donpironet/Documents/Development/Private/gins4udjango/myvenv/lib/python3.5/site-packages/django/db/backends/base/schema.py", line 134, in column_sql
db_params = field.db_parameters(connection=self.connection)
File "/Users/donpironet/Documents/Development/Private/gins4udjango/myvenv/lib/python3.5/site-packages/django/db/models/fields/related.py", line 967, in db_parameters
return {"type": self.db_type(connection), "check": []}
File "/Users/donpironet/Documents/Development/Private/gins4udjango/myvenv/lib/python3.5/site-packages/django/db/models/fields/related.py", line 958, in db_type
rel_field = self.target_field
File "/Users/donpironet/Documents/Development/Private/gins4udjango/myvenv/lib/python3.5/site-packages/django/db/models/fields/related.py", line 861, in target_field
return self.foreign_related_fields[0]
File "/Users/donpironet/Documents/Development/Private/gins4udjango/myvenv/lib/python3.5/site-packages/django/db/models/fields/related.py", line 594, in foreign_related_fields
return tuple(rhs_field for lhs_field, rhs_field in self.related_fields if rhs_field)
File "/Users/donpironet/Documents/Development/Private/gins4udjango/myvenv/lib/python3.5/site-packages/django/db/models/fields/related.py", line 581, in related_fields
self._related_fields = self.resolve_related_fields()
File "/Users/donpironet/Documents/Development/Private/gins4udjango/myvenv/lib/python3.5/site-packages/django/db/models/fields/related.py", line 574, in resolve_related_fields
else self.remote_field.model._meta.get_field(to_field_name))
File "/Users/donpironet/Documents/Development/Private/gins4udjango/myvenv/lib/python3.5/site-packages/django/db/models/options.py", line 582, in get_field
raise FieldDoesNotExist('%s has no field named %r' % (self.object_name, field_name))
django.core.exceptions.FieldDoesNotExist: Gin has no field named <django.db.models.fields.CharField>
(myvenv) ➜ gins4udjango
Does anyone have an idea?有没有人有想法? I don't see the problem.
我看不出问题。
EDIT:编辑:
Latest migration file
# -*- coding: utf-8 -*-
# Generated by Django 1.9.5 on 2016-04-23 10:45
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('ginsdb', '0007_delete_ginlocal'),
]
operations = [
migrations.CreateModel(
name='GinLocal',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('objectId', models.CharField(max_length=100)),
('origin', models.TextField()),
('serve', models.TextField()),
('aroma', models.TextField()),
],
),
]
As mentioned in error log, problem is in : ginsdb.0002_ginlocal...
that is located in ../Path_To_Your_App/ginsdb/migrations
如错误日志中所述,问题出在:
ginsdb.0002_ginlocal...
位于../Path_To_Your_App/ginsdb/migrations
You have 2 choices:您有 2 个选择:
1- If your database is empty and you have not entered anything in it can simply create a new database, change you database in settings.py
, clear all migrations in ../Path_To_Your_App/ginsdb/migrations
and then try this: 1- 如果您的数据库是空的并且您没有在其中输入任何内容,则可以简单地创建一个新数据库,在
settings.py
更改您的数据库,清除../Path_To_Your_App/ginsdb/migrations
所有迁移,然后尝试以下操作:
>>>python manage.py makemigrations
>>>python manage.py migrate ginsdb
2- If you don't prefer to change your database should find cause of error, for beginning should post all files in your ../Path_To_Your_App/ginsdb/migrations/
and say the steps you go to design your models. 2- 如果您不喜欢更改数据库,则应查找错误原因,开始时应将所有文件发布到
../Path_To_Your_App/ginsdb/migrations/
并说明您设计模型的步骤。
In some cases it will simply work when you delete ../Path_To_Your_App/ginsdb/migrations/ginsdb.0002_ginlocal...
在某些情况下,当您删除
../Path_To_Your_App/ginsdb/migrations/ginsdb.0002_ginlocal...
时,它只会起作用../Path_To_Your_App/ginsdb/migrations/ginsdb.0002_ginlocal...
I will suggest you to make the project and copy the app and as well as the sqlite file then update you settings.py by adding your app.我会建议您制作项目并复制应用程序以及 sqlite 文件,然后通过添加您的应用程序来更新您的 settings.py。 It will solve your problem
它会解决你的问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.