如何从辛克错误中恢复在x射线3升级

帕特里克·罗素
2021-10-26二三15

主题

如果Snyk数据在Mongo数据库中,Xray 3将无法升级。

影响版本

x光3。Xmigrations and upgrades

描述

Xray曾经支持Snyk的脆弱性数据,但这段合作关系不久前结束了。因此,MongoDB到Postgres的迁移不考虑Mongo数据库中的一个漏洞项目。如果URL长度超过64个字符,将会导致错误:

2010-04-11 t12:49:24 . 165z ^[[33m[jfxps]^[[0m ^[[1m^[31m[ERROR]^[[0m [] [lock:97] [main] Could not start running: Migration for mongodb has failed: mongodb Migration output:

> 0061年_xray.up.mgo

V0061_BinaryManagersIndexed2022世界杯阿根廷预选赛赛程Resources_Up

> 1000年_xray.up.mgo

V1000_MigrateMongoCollectionsToPostgres_Up

ERROR: Method V1000_MigrateMongoCollectionsToPostgres_Up returned an ERROR: Failed on migrate脆弱性:Failed to run bulk upload command copy public_vulnerabilities_sources FROM '/opt/jfrog/xray/var/data/server/db_migrations/mgo2pg/public_vulnerabilities_sources. CSV ' WITH NULL AS E'''' DELIMITER ',' CSV HEADER;: ERROR: exit status

StdErr:错误:值太长,类型字符变化(64)

内容:复制public_vulnerability ties_sources,行49866,列source_id: "SNYK-DOTNET-MICROSOFTASPNETCORESERVERKESTRELTRANSPORTABSTRACTIONS-60242"

决议

您需要纠正MongoDB中有问题的表行,然后强制重新启动迁移。

1.MongoDB登录:
如果“Password”不起作用,#Password可能在/root下
mongo -u xray -p password -authenticationDatabase xray -authenticationMechanism超编码- sha -1
2.在MongoDB中切换到Xray数据库
使用x光
3.执行以下查询,它将URL块缩短到64个字符以下:
db.vulnerabilities。更新({" _id ":“x光- 67456 "},{" $集":{“来源”:[

“name”:“Snyk VulnDB”,
:“source_id jfrog-fix”,
“url”:“https://snyk.io/vuln/snyk - dotnet - 60242”

}})
4.登录到PostgreSQL
# / opt / PostgreSQL / 9.6 / bin
#默认密码:“x光”
。/ psql xraydb x光
5.在PostgreSQL数据库中,运行以下查询。它将重新启动迁移。
从db_migrations_running删除;
6.重新启动x光