项目bug不要随便修复,谁也不知道会不会因为bug修复引起更大的问题
1,前两天发现项目有个报表地年份搜索框不能用,查询会引起程序报错数据库异常
class YearFilter(widgets.DatePicker):
title = u'年'
name = 'year'
def lookups(self, request, model_admin, value=None, dict_filter=None):
self.format = "yyyy"
self.value = value
def queryset(self, request, queryset, value, dict_filter=None):
if value:
print(111)
year = value.split("-")[0]
begin_time = "%s-01-01" % year
end_time = "%s-12-31" % year
queryset = queryset.filter(time__gte=begin_time).filter(time__lte=end_time)
return queryset
该表里面没有time字段,但是有creat_time,只需要把time改成creat_time即可,
甚至,queryset = queryset.filter(time__year==year)还能省更多代码
为了防止其他引用的地方出错,重写一个newclass,引用的地方改为newclass
本地测试无误
2,找个时间,顺手线上环境更新一下代码
因为已经写好了刷新脚本,直接执行即可
./restart.sh
执行耗时好几秒,当时心生不妙
再次访问网站,直接挂了。
internal server error
此时还没有意识到问题的严重性,一点都不慌,
之前也出现过这类情况,因为空格与tab混用,导致程序无法执行
删除更新的代码,重新执行./restart.sh,不行
使用工具用之前保存的文件替换修改文件,重新执行./restart.sh,不行
./start.sh
# 提示第三行运行程序的gunicorn 命令找不到
# 补全路径单独执行命令
/data/server/gunicorn -c gunicorn.py myproject.wsgi:application --daemon
统统都不行
3,查询bug
ps -ef | grep python
没有该项目相关信息
./restart.sh
ps -ef | grep python
成功查出来相关进程,但是18s之后逐渐关闭,浏览器依旧无法访问,为什么是18s?
查询nohup日志,
File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
File "/data/server/user/admin.py", line 715
data.setdefault('password1','Zhongtie@123')
^
TabError: inconsistent use of tabs and spaces in indentation
找到该文件该位置,发现是重置密码相关代码。也不多bb,直接删除
再次执行./restart.sh,程序运行成功