django报错:django.db.utils.InternalError

Model类:

fromdjango.dbimportmodels

fromcommon.modelsimportDepartment,User

# Create your models here.

classEmployer(models.Model):

user = models.ForeignKey(User)

birthdate = models.DateField

hometown = models.CharField("籍贯",max_length=50)

nation = models.CharField("民族",max_length=20)

edu = models.TextField("教育经历",max_length=500)

resume = models.TextField("工作经历",max_length=500)

def__str__(self):

returnself.emp_name

classMeta:

verbose_name ="职工"#默认显示复数的形式

verbose_name_plural = verbose_name#显示成单数的形式


运行makemigrations正常,但运行migrate报错:

manage.py@travel > migrate"C:\Program Files (x86)\JetBrains\PyCharm 2016.2.3\bin\runnerw.exe" C:\Users\Acer\AppData\Local\Programs\Python\Python35\python.exe "C:\Program Files (x86)\JetBrains\PyCharm 2016.2.3\helpers\pycharm\django_manage.py" migrate E:/python_project/travelOperations to perform:  Synchronize unmigrated apps: staticfiles, messages  Apply all migrations: contenttypes, common, travel_list, sessions, auth, admin, employerSynchronizing apps without migrations:  Creating tables...    Running deferred SQL...  Installing custom SQL...Running migrations:  Rendering model states... DONE  Applying employer.0003_auto_20161203_1445...Traceback (most recent call last):  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\utils.py", line 64, in execute    return self.cursor.execute(sql, params)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\mysql\base.py", line 124, in execute    return self.cursor.execute(query, args)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\cursors.py", line 166, in execute    result = self._query(query)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\cursors.py", line 322, in _query    conn.query(q)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 835, in query    self._affected_rows = self._read_query_result(unbuffered=unbuffered)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 1019, in _read_query_result    result.read()  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 1302, in read    first_packet = self.connection._read_packet()  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 981, in _read_packet    packet.check_error()  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 393, in check_error    err.raise_mysql_exception(self._data)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\err.py", line 107, in raise_mysql_exception    raise errorclass(errno, errval)pymysql.err.InternalError: (1067, "Invalid default value for 'nation'")The above exception was the direct cause of the following exception:Traceback (most recent call last):  File "C:\Program Files (x86)\JetBrains\PyCharm 2016.2.3\helpers\pycharm\django_manage.py", line 41, inrun_module(manage_file, None, '__main__', True)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\runpy.py", line 182, in run_module    return _run_module_code(code, init_globals, run_name, mod_spec)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\runpy.py", line 96, in _run_module_code    mod_name, mod_spec, pkg_name, script_name)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\runpy.py", line 85, in _run_code    exec(code, run_globals)  File "E:/python_project/travel\manage.py", line 22, inexecute_from_command_line(sys.argv)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\core\management\__init__.py", line 354, in execute_from_command_line    utility.execute()  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\core\management\__init__.py", line 346, in execute    self.fetch_command(subcommand).run_from_argv(self.argv)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\core\management\base.py", line 394, in run_from_argv    self.execute(*args, **cmd_options)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\core\management\base.py", line 445, in execute    output = self.handle(*args, **options)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\core\management\commands\migrate.py", line 222, in handle    executor.migrate(targets, plan, fake=fake, fake_initial=fake_initial)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\migrations\executor.py", line 110, in migrate    self.apply_migration(states[migration], migration, fake=fake, fake_initial=fake_initial)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\migrations\executor.py", line 148, in apply_migration    state = migration.apply(state, schema_editor)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\migrations\migration.py", line 115, in apply    operation.database_forwards(self.app_label, schema_editor, old_state, project_state)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\migrations\operations\fields.py", line 201, in database_forwards    schema_editor.alter_field(from_model, from_field, to_field)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\base\schema.py", line 484, in alter_field    old_db_params, new_db_params, strict)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\base\schema.py", line 636, in _alter_field    params,  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\base\schema.py", line 111, in execute    cursor.execute(sql, params)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\utils.py", line 79, in execute    return super(CursorDebugWrapper, self).execute(sql, params)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\utils.py", line 64, in execute    return self.cursor.execute(sql, params)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\utils.py", line 98, in __exit__    six.reraise(dj_exc_type, dj_exc_value, traceback)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\utils\six.py", line 685, in reraise    raise value.with_traceback(tb)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\utils.py", line 64, in execute    return self.cursor.execute(sql, params)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\mysql\base.py", line 124, in execute    return self.cursor.execute(query, args)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\cursors.py", line 166, in execute    result = self._query(query)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\cursors.py", line 322, in _query    conn.query(q)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 835, in query    self._affected_rows = self._read_query_result(unbuffered=unbuffered)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 1019, in _read_query_result    result.read()  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 1302, in read    first_packet = self.connection._read_packet()  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 981, in _read_packet    packet.check_error()  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 393, in check_error    err.raise_mysql_exception(self._data)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\err.py", line 107, in raise_mysql_exception    raise errorclass(errno, errval)django.db.utils.InternalError: (1067, "Invalid default value for 'nation'")Process finished with exit code 1manage.py@travel > makemigrations"C:\Program Files (x86)\JetBrains\PyCharm 2016.2.3\bin\runnerw.exe" C:\Users\Acer\AppData\Local\Programs\Python\Python35\python.exe "C:\Program Files (x86)\JetBrains\PyCharm 2016.2.3\helpers\pycharm\django_manage.py" makemigrations E:/python_project/travelMigrations for 'employer':  0005_auto_20161203_1451.py:    - Change Meta options on employerProcess finished with exit code 0manage.py@travel > migrate"C:\Program Files (x86)\JetBrains\PyCharm 2016.2.3\bin\runnerw.exe" C:\Users\Acer\AppData\Local\Programs\Python\Python35\python.exe "C:\Program Files (x86)\JetBrains\PyCharm 2016.2.3\helpers\pycharm\django_manage.py" migrate E:/python_project/travelOperations to perform:  Synchronize unmigrated apps: messages, staticfiles  Apply all migrations: employer, auth, travel_list, admin, sessions, common, contenttypesSynchronizing apps without migrations:  Creating tables...    Running deferred SQL...  Installing custom SQL...Running migrations:  Rendering model states... DONE  Applying employer.0003_auto_20161203_1445...Traceback (most recent call last):  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\utils.py", line 64, in execute    return self.cursor.execute(sql, params)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\mysql\base.py", line 124, in execute    return self.cursor.execute(query, args)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\cursors.py", line 166, in execute    result = self._query(query)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\cursors.py", line 322, in _query    conn.query(q)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 835, in query    self._affected_rows = self._read_query_result(unbuffered=unbuffered)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 1019, in _read_query_result    result.read()  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 1302, in read    first_packet = self.connection._read_packet()  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 981, in _read_packet    packet.check_error()  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 393, in check_error    err.raise_mysql_exception(self._data)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\err.py", line 107, in raise_mysql_exception    raise errorclass(errno, errval)pymysql.err.InternalError: (1067, "Invalid default value for 'nation'")The above exception was the direct cause of the following exception:Traceback (most recent call last):  File "C:\Program Files (x86)\JetBrains\PyCharm 2016.2.3\helpers\pycharm\django_manage.py", line 41, inrun_module(manage_file, None, '__main__', True)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\runpy.py", line 182, in run_module    return _run_module_code(code, init_globals, run_name, mod_spec)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\runpy.py", line 96, in _run_module_code    mod_name, mod_spec, pkg_name, script_name)  File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\runpy.py", line 85, in _run_code    exec(code, run_globals)  File "E:/python_project/travel\manage.py", line 22, inexecute_from_command_line(sys.argv)

File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\core\management\__init__.py", line 354, in execute_from_command_line

utility.execute()

File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\core\management\__init__.py", line 346, in execute

self.fetch_command(subcommand).run_from_argv(self.argv)

File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\core\management\base.py", line 394, in run_from_argv

self.execute(*args, **cmd_options)

File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\core\management\base.py", line 445, in execute

output = self.handle(*args, **options)

File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\core\management\commands\migrate.py", line 222, in handle

executor.migrate(targets, plan, fake=fake, fake_initial=fake_initial)

File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\migrations\executor.py", line 110, in migrate

self.apply_migration(states[migration], migration, fake=fake, fake_initial=fake_initial)

File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\migrations\executor.py", line 148, in apply_migration

state = migration.apply(state, schema_editor)

File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\migrations\migration.py", line 115, in apply

operation.database_forwards(self.app_label, schema_editor, old_state, project_state)

File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\migrations\operations\fields.py", line 201, in database_forwards

schema_editor.alter_field(from_model, from_field, to_field)

File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\base\schema.py", line 484, in alter_field

old_db_params, new_db_params, strict)

File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\base\schema.py", line 636, in _alter_field

params,

File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\base\schema.py", line 111, in execute

cursor.execute(sql, params)

File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\utils.py", line 79, in execute

return super(CursorDebugWrapper, self).execute(sql, params)

File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\utils.py", line 64, in execute

return self.cursor.execute(sql, params)

File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\utils.py", line 98, in __exit__

six.reraise(dj_exc_type, dj_exc_value, traceback)

File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\utils\six.py", line 685, in reraise

raise value.with_traceback(tb)

File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\utils.py", line 64, in execute

return self.cursor.execute(sql, params)

File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\mysql\base.py", line 124, in execute

return self.cursor.execute(query, args)

File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\cursors.py", line 166, in execute

result = self._query(query)

File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\cursors.py", line 322, in _query

conn.query(q)

File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 835, in query

self._affected_rows = self._read_query_result(unbuffered=unbuffered)

File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 1019, in _read_query_result

result.read()

File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 1302, in read

first_packet = self.connection._read_packet()

File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 981, in _read_packet

packet.check_error()

File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 393, in check_error

err.raise_mysql_exception(self._data)

File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\err.py", line 107, in raise_mysql_exception

raise errorclass(errno, errval)

django.db.utils.InternalError: (1067, "Invalid default value for 'nation'")

Process finished with exit code 1

解决办法:

在该字段增加允许为空

你可能感兴趣的:(django报错:django.db.utils.InternalError)