django设置数据库事务,通过异常处理回滚事务
一个Django项目,在地下run起来没有问题,在CentOS上利用Nginx+Django部署完成后,当run起来测试的时候出现问题,代码反馈数据添加成功,但是数据库中没有数据,在数据库中手动插入数据发现ID已经自增长了。
各种排查,发现是出发了数据库回滚机制,在Django的setting中设置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'nahuomallv3_dev',
'USER': 'root',
'PASSWORD': 'root',
'HOST': 'localhost',
# Set to empty sstring for default.
'PORT': '3306',
'OPTIONS': {
# 'charset': 'utf8mb4',
'init_command': 'SET default_storage_engine=INNODB;'
},
# 事务
'ATOMIC_REQUESTS': True,
},
开启事务ATOMIC_REQUESTS