python main.py出错
来源:5-13 Docker登录扫描关键信息代码执行演示

gongwanyi
2019-12-31
在运行python main.py的时候报错:
django.db.utils.IntegrityError: (1452, ‘Cannot add or update a child row: a foreign key constraint fails (imoocc
.virtualserverinfo
, CONSTRAINT virtualserverinfo_vir_phy_id_3cbeda76_fk_physicalserverinfo_id
FOREIGN KEY (vir_phy_id
) REFERENCES physicalserverinfo
(id
))’)
详细信息如下:
(python2.7) root@Pytest:/Devops/imoocc# python main.py
开始***********************************
Traceback (most recent call last):
File “main.py”, line 202, in
main()
File “main.py”, line 127, in main
key_ip_dic = ft.run()
File “/Devops/imoocc/scanhosts/util/j_filter.py”, line 31, in run
self.filter_type()
File “/Devops/imoocc/scanhosts/util/j_filter.py”, line 98, in filter_type
VirtualServerInfo.objects.create(server_ip=item_val[0],server_type=item_val[-1],system_ver=item_val[6],sys_hostname=item_val[7],mac=item_val[-3],sn=item_val[-2],vir_phy_id=1,conn_vir_id=int(self.key_sn_relate[sn_key]))
File “/root/anaconda3/envs/python2.7/lib/python2.7/site-packages/django/db/models/manager.py”, line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File “/root/anaconda3/envs/python2.7/lib/python2.7/site-packages/django/db/models/query.py”, line 394, in create
obj.save(force_insert=True, using=self.db)
File “/root/anaconda3/envs/python2.7/lib/python2.7/site-packages/django/db/models/base.py”, line 808, in save
force_update=force_update, update_fields=update_fields)
File “/root/anaconda3/envs/python2.7/lib/python2.7/site-packages/django/db/models/base.py”, line 838, in save_base
updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File “/root/anaconda3/envs/python2.7/lib/python2.7/site-packages/django/db/models/base.py”, line 924, in _save_table
result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File “/root/anaconda3/envs/python2.7/lib/python2.7/site-packages/django/db/models/base.py”, line 963, in _do_insert
using=using, raw=raw)
File “/root/anaconda3/envs/python2.7/lib/python2.7/site-packages/django/db/models/manager.py”, line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File “/root/anaconda3/envs/python2.7/lib/python2.7/site-packages/django/db/models/query.py”, line 1079, in _insert
return query.get_compiler(using=using).execute_sql(return_id)
File “/root/anaconda3/envs/python2.7/lib/python2.7/site-packages/django/db/models/sql/compiler.py”, line 1112, in execute_sql
cursor.execute(sql, params)
File “/root/anaconda3/envs/python2.7/lib/python2.7/site-packages/django/db/backends/utils.py”, line 79, in execute
return super(CursorDebugWrapper, self).execute(sql, params)
File “/root/anaconda3/envs/python2.7/lib/python2.7/site-packages/django/db/backends/utils.py”, line 64, in execute
return self.cursor.execute(sql, params)
File “/root/anaconda3/envs/python2.7/lib/python2.7/site-packages/django/db/utils.py”, line 94, in exit
six.reraise(dj_exc_type, dj_exc_value, traceback)
File “/root/anaconda3/envs/python2.7/lib/python2.7/site-packages/django/db/backends/utils.py”, line 64, in execute
return self.cursor.execute(sql, params)
File “/root/anaconda3/envs/python2.7/lib/python2.7/site-packages/django/db/backends/mysql/base.py”, line 101, in execute
return self.cursor.execute(query, args)
File “/root/anaconda3/envs/python2.7/lib/python2.7/site-packages/MySQLdb/cursors.py”, line 205, in execute
self.errorhandler(self, exc, value)
File “/root/anaconda3/envs/python2.7/lib/python2.7/site-packages/MySQLdb/connections.py”, line 36, in defaulterrorhandler
raise errorclass, errorvalue
django.db.utils.IntegrityError: (1452, ‘Cannot add or update a child row: a foreign key constraint fails (imoocc
.virtualserverinfo
, CONSTRAINT virtualserverinfo_vir_phy_id_3cbeda76_fk_physicalserverinfo_id
FOREIGN KEY (vir_phy_id
) REFERENCES physicalserverinfo
(id
))’)
1回答
-
Jeson
2019-12-31
这个错误的原因是外键表数据无法塞入,这个需要 把采集的数据逐行打印下。
建议把 item_val 的数值打印出来,排查下具体错误。
出现这种情况有很多可能性,如:和环境的一致性有关等
00
相似问题