-
-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Move DatabaseController and Schema fully to adaptive mongo collection. #909
Conversation
.then(() => { | ||
let promises = insertedFields.map(fieldName => { | ||
const mongoType = mongoObject.result[fieldName]; | ||
return schema.validateField(className, fieldName, mongoType); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The reason I didn't use validateField
originally is that it means you only need a single database operation to handle all the additions. Can you preserve that behaviour here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can try, but am not sure why this should be blocking, since you don't have atomicity guarantees on deletions anyhow, meaning that the entire operation is not atomic...
Can this survive without having a single write for inserts? I can add a todo... 😁
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yah there already a lot of failure modes but this does introduce a new failure mode where some fields are added and some are not. Although this eliminates the failure mode where one person adds a different schema in the middle and then it gets clobbered, so it's really just a trade from one failure mode to another, which is probably fine. In practise I doubt there would be many writers to the schema at the same time anyway.
f27431c
to
49eb9df
Compare
@nlutsenko updated the pull request. |
Current coverage is
|
Move DatabaseController and Schema fully to adaptive mongo collection.
This is close to the final set of changes that will get us usage of mongo all through AdaptiveCollection API set.
This one moves Schema.js, DatabaseController to it as well as improves SchemasRouter API usage a little bit.