Django2.1迁移数据库出错

Stella981
• 阅读 388

今天迁移数据库的时候,报错:django.db.migrations.exceptions.MigrationSchemaMissing,下面是错误的详细信息:

 1 manage.py@xiaopixiu > migrate
 2 "D:\Program Files\JetBrains\PyCharm 2017.2.2\bin\runnerw.exe" C:\Users\senyu\Anaconda3\envs\py3.6.5\python.exe "D:\Program Files\JetBrains\PyCharm 2017.2.2\helpers\pycharm\django_manage.py" migrate C:/Users/senyu/Desktop/工作文件/xiaopixiu_v2.0/xiaopixiu
 3 System check identified some issues:
 4 
 5 WARNINGS:
 6 ?: (mysql.W002) MySQL Strict Mode is not set for database connection 'default'
 7     HINT: MySQL's Strict Mode fixes many data integrity problems in MySQL, such as data truncation upon insertion, by escalating warnings into errors. It is strongly recommended you activate it. See: https://docs.djangoproject.com/en/2.1/ref/databases/#mysql-sql-mode
 8 Operations to perform:
 9   Apply all migrations: admin, auth, authtoken, common, contenttypes, sessions
10 Running migrations:
11 Traceback (most recent call last):
12   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\django\db\backends\utils.py", line 83, in _execute
13     return self.cursor.execute(sql)
14   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\django\db\backends\mysql\base.py", line 71, in execute
15     return self.cursor.execute(query, args)
16   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\MySQLdb\cursors.py", line 250, in execute
17     self.errorhandler(self, exc, value)
18   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\MySQLdb\connections.py", line 50, in defaulterrorhandler
19     raise errorvalue
20   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\MySQLdb\cursors.py", line 247, in execute
21     res = self._query(query)
22   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\MySQLdb\cursors.py", line 411, in _query
23     rowcount = self._do_query(q)
24   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\MySQLdb\cursors.py", line 374, in _do_query
25     db.query(q)
26   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\MySQLdb\connections.py", line 277, in query
27     _mysql.connection.query(self, query)
28 _mysql_exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(6) NOT NULL)' at line 1")
29 
30 The above exception was the direct cause of the following exception:
31 
32 Traceback (most recent call last):
33   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\django\db\migrations\recorder.py", line 55, in ensure_schema
34     editor.create_model(self.Migration)
35   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\django\db\backends\base\schema.py", line 312, in create_model
36     self.execute(sql, params or None)
37   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\django\db\backends\base\schema.py", line 133, in execute
38     cursor.execute(sql, params)
39   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\django\db\backends\utils.py", line 100, in execute
40     return super().execute(sql, params)
41   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\django\db\backends\utils.py", line 68, in execute
42     return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
43   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\django\db\backends\utils.py", line 77, in _execute_with_wrappers
44     return executor(sql, params, many, context)
45   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
46     return self.cursor.execute(sql, params)
47   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\django\db\utils.py", line 89, in __exit__
48     raise dj_exc_value.with_traceback(traceback) from exc_value
49   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\django\db\backends\utils.py", line 83, in _execute
50     return self.cursor.execute(sql)
51   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\django\db\backends\mysql\base.py", line 71, in execute
52     return self.cursor.execute(query, args)
53   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\MySQLdb\cursors.py", line 250, in execute
54     self.errorhandler(self, exc, value)
55   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\MySQLdb\connections.py", line 50, in defaulterrorhandler
56     raise errorvalue
57   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\MySQLdb\cursors.py", line 247, in execute
58     res = self._query(query)
59   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\MySQLdb\cursors.py", line 411, in _query
60     rowcount = self._do_query(q)
61   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\MySQLdb\cursors.py", line 374, in _do_query
62     db.query(q)
63   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\MySQLdb\connections.py", line 277, in query
64     _mysql.connection.query(self, query)
65 django.db.utils.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(6) NOT NULL)' at line 1")
66 
67 During handling of the above exception, another exception occurred:
68 
69 Traceback (most recent call last):
70   File "D:\Program Files\JetBrains\PyCharm 2017.2.2\helpers\pycharm\django_manage.py", line 43, in <module>
71     run_module(manage_file, None, '__main__', True)
72   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\runpy.py", line 205, in run_module
73     return _run_module_code(code, init_globals, run_name, mod_spec)
74   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\runpy.py", line 96, in _run_module_code
75     mod_name, mod_spec, pkg_name, script_name)
76   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\runpy.py", line 85, in _run_code
77     exec(code, run_globals)
78   File "C:/Users/senyu/Desktop/工作文件/xiaopixiu_v2.0/xiaopixiu\manage.py", line 15, in <module>
79     execute_from_command_line(sys.argv)
80   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\django\core\management\__init__.py", line 381, in execute_from_command_line
81     utility.execute()
82   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\django\core\management\__init__.py", line 375, in execute
83     self.fetch_command(subcommand).run_from_argv(self.argv)
84   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\django\core\management\base.py", line 316, in run_from_argv
85     self.execute(*args, **cmd_options)
86   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\django\core\management\base.py", line 353, in execute
87     output = self.handle(*args, **options)
88   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\django\core\management\base.py", line 83, in wrapped
89     res = handle_func(*args, **kwargs)
90   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\django\core\management\commands\migrate.py", line 203, in handle
91     fake_initial=fake_initial,
92   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\django\db\migrations\executor.py", line 91, in migrate
93     self.recorder.ensure_schema()
94   File "C:\Users\senyu\Anaconda3\envs\py3.6.5\lib\site-packages\django\db\migrations\recorder.py", line 57, in ensure_schema
95     raise MigrationSchemaMissing("Unable to create the django_migrations table (%s)" % exc)
96 django.db.migrations.exceptions.MigrationSchemaMissing: Unable to create the django_migrations table ((1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(6) NOT NULL)' at line 1"))

Python版本为3.6.5, Django版本为2.1.7,,之前在本地迁移数据库的时候是很正常的,迁移到服务器上就报错,然后查看之后,发现本地数据库是5.7.22,服务端数据库版本为5.5.56,然后猜想为数据库版本问题,Django2.1生成的数据库语句和5.5版本的数据库不兼容.因此才会出现这样的错误.

之后查看了Django的发行信息

Django2.1迁移数据库出错

Djngo2.1只支持MySQL5.6(含)以上版本,所以确定就是MySQL版本问题.

并且,官方宣布,Django2.0是最后一个支持3.4版本的Python,还好我Python版本比较新一些.建议大家以后使用新版的时候,事先阅读一下新版本的新特性.嗯,就是这样

Django2.1迁移数据库出错

点赞
收藏
评论区
推荐文章
blmius blmius
1年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
技术小男生 技术小男生
5个月前
linux环境jdk环境变量配置
1:编辑系统配置文件vi/etc/profile2:按字母键i进入编辑模式,在最底部添加内容:JAVAHOME/opt/jdk1.8.0152CLASSPATH.:$JAVAHOME/lib/dt.jar:$JAVAHOME/lib/tools.jarPATH$JAVAHOME/bin:$PATH3:生效配置
刚刚好 刚刚好
5个月前
css问题
1、在IOS中图片不显示(给图片加了圆角或者img没有父级)<div<imgsrc""/</divdiv{width:20px;height:20px;borderradius:20px;overflow:h
小森森 小森森
5个月前
校园表白墙微信小程序V1.0 SayLove -基于微信云开发-一键快速搭建,开箱即用
后续会继续更新,敬请期待2.0全新版本欢迎添加左边的微信一起探讨!项目地址:(https://www.aliyun.com/activity/daily/bestoffer?userCodesskuuw5n)\2.Bug修复更新日历2.情侣脸功能大家不要使用了,现在阿里云的接口已经要收费了(土豪请随意),\\和注意
晴空闲云 晴空闲云
5个月前
css中box-sizing解放盒子实际宽高计算
我们知道传统的盒子模型,如果增加内边距padding和边框border,那么会撑大整个盒子,造成盒子的宽度不好计算,在实务中特别不方便。boxsizing可以设置盒模型的方式,可以很好的设置固定宽高的盒模型。盒子宽高计算假如我们设置如下盒子:宽度和高度均为200px,那么这会这个盒子实际的宽高就都是200px。但是当我们设置这个盒子的边框和内间距的时候,那
艾木酱 艾木酱
5个月前
快速入门|使用MemFire Cloud构建React Native应用程序
MemFireCloud是一款提供云数据库,用户可以创建云数据库,并对数据库进行管理,还可以对数据库进行备份操作。它还提供后端即服务,用户可以在1分钟内新建一个应用,使用自动生成的API和SDK,访问云数据库、对象存储、用户认证与授权等功能,可专
Easter79 Easter79
1年前
swap空间的增减方法
(1)增大swap空间去激活swap交换区:swapoff v /dev/vg00/lvswap扩展交换lv:lvextend L 10G /dev/vg00/lvswap重新生成swap交换区:mkswap /dev/vg00/lvswap激活新生成的交换区:swapon v /dev/vg00/lvswap
Stella981 Stella981
1年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
1年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Wesley13 Wesley13
1年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
helloworld_28799839 helloworld_28799839
5个月前
常用知识整理
Javascript判断对象是否为空jsObject.keys(myObject).length0经常使用的三元运算我们经常遇到处理表格列状态字段如status的时候可以用到vue