You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
1.0 KiB
JavaScript
22 lines
1.0 KiB
JavaScript
"use strict";
|
|
|
|
const { changeCollection, addFields, changeFields, addIndex, decimal, required, defaultExistingTo, precision, defaultTo, withTimezone, unsigned } = require("../../../src/schema/methods/v1");
|
|
|
|
module.exports = [
|
|
changeCollection("users", [
|
|
addFields({
|
|
karmaScore: [ required, decimal, precision(4), defaultTo(0) ]
|
|
}),
|
|
changeFields({
|
|
// A migration default is mandatory when making a field `required` in a `changeFields`
|
|
emailAddress: [ required, defaultExistingTo("INVALID@example.com") ],
|
|
// TODO: To detect bugs early, disallow no-op changes in schema modifications?
|
|
isActive: [ required ],
|
|
// TODO: Changing to *without* a timezone should require an explicit allowDestructive modifier, as it would require normalizing all dates to UTC, losing the original timezone information in the process. Or maybe an `unsafe` wrapper? Like `unsafe(withoutTimezone)` or `destructive(withoutTimezone)`, but only for *modification* cases
|
|
registrationDate: [ withTimezone ],
|
|
invitesLeft: [ unsigned ]
|
|
}),
|
|
addIndex("karmaScore")
|
|
])
|
|
];
|