我正在使用流星,并且我试图从流星1.6升级到1.7 但是我遇到错误,无法在我的测试中获取有关信息:
我得到了很多类似的东西(有些可能是重复的,未使用的或过时的):
Error: Updating the path 'relationChangeRate' would create a conflict at 'relationChangeRate'
at Function.MongoError.create (C:\Users\fquesselaire\AppData\Local\.meteor\packages\npm-mongo\3.0.11\npm\node_modules\mongodb-core\lib\error.js:45:10)
at toError (C:\Users\fquesselaire\AppData\Local\.meteor\packages\npm-mongo\3.0.11\npm\node_modules\mongodb\lib\utils.js:149:22)
at C:\Users\fquesselaire\AppData\Local\.meteor\packages\npm-mongo\3.0.11\npm\node_modules\mongodb\lib\collection.js:1029:39
at C:\Users\fquesselaire\AppData\Local\.meteor\packages\npm-mongo\3.0.11\npm\node_modules\mongodb-core\lib\connection\pool.js:544:18
at _combinedTickCallback (internal/process/next_tick.js:131:7)
at process._tickDomainCallback (internal/process/next_tick.js:218:9)
在1.6版本中不存在。*
我尝试将mongodb升级到3.6.6,没有效果。 我也无法在测试中获得整个堆栈,以查看到底是什么在执行。
我的.meteor / versions:
255kb:meteor-status@1.5.0
accounts-base@1.4.2
accounts-password@1.5.1
akasha:fs-extra@0.26.3
alanning:roles@1.2.16
aldeed:autoform@6.3.0
aldeed:autoform-bs-button-group-input@2.0.0
aldeed:autoform-select2@3.0.1
aldeed:collection2-core@2.1.2
aldeed:template-extension@4.1.0
allow-deny@1.1.0
arillo:flow-router-helpers@0.5.2
autoupdate@1.4.1
babel-compiler@7.1.1
babel-runtime@1.2.4
base64@1.0.11
binary-heap@1.0.10
blaze@2.3.2
blaze-html-templates@1.1.2
blaze-tools@1.0.10
boilerplate-generator@1.5.0
caching-compiler@1.1.12
caching-html-compiler@1.1.3
callback-hook@1.1.0
check@1.3.1
coffeescript@1.0.17
cultofcoders:mocha@2.4.6
dburles:collection-helpers@1.1.0
dburles:factory@1.1.0
ddp@1.4.0
ddp-client@2.3.3
ddp-common@1.4.0
ddp-rate-limiter@1.0.7
ddp-server@2.2.0
deps@1.0.12
diff-sequence@1.1.0
dynamic-import@0.4.1
ecmascript@0.11.1
ecmascript-runtime@0.7.0
ecmascript-runtime-client@0.7.2
ecmascript-runtime-server@0.7.1
ejson@1.1.0
email@1.2.3
es5-shim@4.8.0
fourseven:scss@4.9.0
geojson-utils@1.0.10
hot-code-push@1.0.4
html-tools@1.0.11
htmljs@1.0.11
http@1.4.1
id-map@1.1.0
idmontie:migrations@1.0.3
jquery@1.11.11
kadira:blaze-layout@2.3.0
kadira:flow-router@2.12.1
lai:collection-extensions@0.2.1_1
launch-screen@1.1.1
livedata@1.0.18
lmieulet:meteor-coverage@1.1.4
localstorage@1.2.0
logging@1.1.20
matb33:collection-hooks@0.8.4
meteor@1.9.2
meteor-base@1.4.0
meteorhacks:picker@1.0.3
meteortesting:browser-tests@1.0.0
meteortesting:mocha@1.0.0
minifier-css@1.3.1
minifier-js@2.3.5
minimongo@1.4.4
mobile-experience@1.0.5
mobile-status-bar@1.0.14
modern-browsers@0.1.2
modules@0.12.2
modules-runtime@0.10.2
momentjs:moment@2.22.2
mongo@1.5.1
mongo-dev-server@1.1.0
mongo-id@1.0.7
mouse0270:bootstrap-notify@3.1.3
natestrauser:select2@4.0.3
npm-bcrypt@0.9.3
npm-mongo@3.0.11
observe-sequence@1.0.16
ordered-dict@1.1.0
ostrio:cookies@2.3.0
ostrio:files@1.10.1
practicalmeteor:chai@2.1.0_1
practicalmeteor:loglevel@1.2.0_2
practicalmeteor:mocha-core@1.0.1
practicalmeteor:sinon@1.14.1_2
promise@0.11.1
raix:eventemitter@0.1.3
random@1.1.0
rate-limit@1.0.9
reactive-dict@1.2.1
reactive-var@1.0.11
reload@1.2.0
retry@1.1.0
rocketchat:streamer@0.5.0
routepolicy@1.0.13
service-configuration@1.0.11
session@1.1.8
sewdn:collection-behaviours@0.3.0
sha@1.0.9
shell-server@0.3.1
socket-stream-client@0.2.2
softwarerero:accounts-t9n@1.3.11
spacebars@1.0.15
spacebars-compiler@1.1.3
srp@1.0.12
standard-minifier-css@1.4.1
standard-minifier-js@2.3.4
templating@1.3.2
templating-compiler@1.3.3
templating-runtime@1.3.2
templating-tools@1.1.2
tmeasday:check-npm-versions@0.3.2
tmeasday:test-reporter-helpers@0.2.1
tracker@1.2.0
ui@1.0.13
underscore@1.0.10
url@1.2.0
useraccounts:bootstrap@1.14.2
useraccounts:core@1.14.2
useraccounts:flow-routing@1.14.2
webapp@1.6.2
webapp-hashing@1.0.9
zimme:active-route@2.3.2
我的节点包:
"dependencies": {
"@babel/runtime": "^7.0.0-beta.54",
"@mdi/font": "^2.5.94",
"babel-runtime": "^6.26.0",
"bcrypt": "^3.0.0",
"bootstrap": "^3.3.7",
"bootstrap-material-design": "^0.5.10",
"bootstrap-slider": "^10.0.2",
"bootstrap-toggle": "^2.2.2",
"clone": "^2.1.1",
"csv-parse": "^2.5.0",
"d3": "^5.5.0",
"file-saver": "^1.3.8",
"fs-extra": "^3.0.1",
"gm": "^1.23.0",
"jquery": "^2.2.4",
"jsondiffpatch": "^0.3.11",
"lodash": "^4.17.10",
"meteor-node-stubs": "^0.4.1",
"mkdirp": "^0.5.1",
"object-path": "^0.11.4",
"popper.js": "^1.14.3",
"select2": "^4.0.4",
"select2-bootstrap-theme": "^0.1.0-beta.10",
"simpl-schema": "^1.5.3",
"uuid": "^3.3.2",
"xmldoc": "^1.1.0",
"zip-local": "^0.3.4"
},
"devDependencies": {
"chromedriver": "^2.40.0",
"gulp": "^3.9.1",
"selenium-webdriver": "^3.6.0"
}
如果您对正在发生的事情有任何线索? 我可以提供有关应用程序中发生的情况的更多信息,但是现在,简单解释一下该错误的含义已经非常棒了。如我所说,此错误仅附加到1.7。
编辑:忘了说我的测试将此代码放在工作代码上。 功能运作良好,但测试却无法完成。
EDIT²:
此方法是更新集合projectSettings的方法。
_duplicateProjectSettings(newSession) {
const settings = this.session.projectSettings();
delete settings._id;
settings.sessionId = newSession._id;
const newSettings = newSession.projectSettings();
ProjectSettings.update(newSettings._id, { $set: settings });
}
relationChangeRate是projectSettings集合的简化模式字段(我使用collection2-core):
relationChangeRate: {
type: Number,
allowedValues: _.values(RelationRates),
defaultValue: 0.0
}
projectSettings扩展了mongo.collection,但是在这种情况下,update方法不会被覆盖。 代码对我来说是正确的,因为_id已被删除,并在更新请求之前设置为新对象。但是也许我错了吗?
EDIT³:
ProjectSettings是collection-helper:
这是代码:
Sessions.helpers({
[...]
projectSettings() {
const conds = { sessionId: this._id };
return ProjectSettings.findOne(conds);
},
[...]
集合助手基本上在此集合的每个文档上添加一个方法。这意味着任何会话对象都将具有此方法。在收集助手中,“ this”是指当前收集对象。
所以应该很好?
_duplicateProjectSettings可以这样写:
_duplicateProjectSettings(newSession) {
// const settings = this.session.projectSettings();
const settings = ProjectSettings.findOne({ sessionId: this.session._id });
delete settings._id;
settings.sessionId = newSession._id;
// const newSettings = newSession.projectSettings();
const newSettings = ProjectSettings.findOne({ sessionId: newSession._id });
ProjectSettings.update(newSettings._id, { $set: settings });
}
(我也尝试过,结果相同)
答案 0 :(得分:1)
从shell运行此命令对我来说很有效……不是最佳解决方案。尝试使用帐户密码包登录时遇到了问题。
.catch
答案 1 :(得分:0)
好吧
这是一个半答案,但 经过一些扩展的搜索后,我发现我有一个测试脚本,可以按如下方式重置MONGO_URL:
set MONGO_URL=
set TEST_BROWSER_DRIVER=chrome
set TEST_WATCH=1
set TEST_CLIENT=0
set TEST_SERVER=1
meteor test -p 3100 --driver-package=cultofcoders:mocha %*
在确定我在本地dev db上启动了测试之后,测试通过了(以大声笑的方式粉碎了db)。因此,这意味着它可能与版本相关,或与测试条件相关。 我无法打印用于测试的mongodb版本,所以我不完全了解测试条件。
我所知道的是: 流星“正常运行” Mongo版本:3.6.4 我的本地Mongo版本:3.6.6