Validation unique de la ligne de flottaison non détectée jusqu'à la prochaine réinitialisation du serveur Sailjs

StackOverflow https://stackoverflow.com//questions/23000494

  •  20-12-2019
  •  | 
  •  

Question

J'utilise des voiles @ beta.

J'essaie de créer plusieurs modèles de chambre (voir la définition) ci-dessous, le problème est que je peux créer des modèles de la chambre avec le même attribut 'Name', bien que l'attribut 'Nom' a une validation unique.

La validation n'est pas détectée tant que le prochain redémarrage du serveur 'Sails' , alors je reçois cette sortie:

C:\eMali_dev\server>sails lift

info: Starting app...

Express midleware for passport
Waterline encountered a fatal error when trying to perform the `alter` auto-migration strategy.
In a couple of seconds, the data (cached in memory) will be logged to stdout.
(a failsafe put in place to preserve development data)

In the mean time, here's the error:

Error (E_UNKNOWN) :: Encountered an unexpected error:
MongoError: E11000 duplicate key error index: eMali_beta_dev.room.$name_1  dup key: { : "e1" }
Details:
{ error: 'E_UNKNOWN',
  summary: 'Encountered an unexpected error',
  status: 500,
  raw: 'MongoError: E11000 duplicate key error index: eMali_beta_dev.room.$name_1  dup key: { : "e1" }' }


================================
Data backup:
================================

[ { name: 'e1',
    center: '53471e2318b931dc1b69f3a8',
    min_age: 1,
    max_age: 6,
    createdAt: Fri Apr 11 2014 00:41:39 GMT+0200 (W. Europe Summer Time),
    updatedAt: Fri Apr 11 2014 00:41:39 GMT+0200 (W. Europe Summer Time),
    _id: { _bsontype: 'ObjectID', id: 'SG\u001e#\u001811Ü\u001bióc' } },
  { name: 'e2',
    center: '53471e2318b931dc1b69f3a8',
    min_age: 1,
    max_age: 7,
    createdAt: Fri Apr 11 2014 00:41:39 GMT+0200 (W. Europe Summer Time),
    updatedAt: Fri Apr 11 2014 00:41:39 GMT+0200 (W. Europe Summer Time),
    _id: { _bsontype: 'ObjectID', id: 'SG\u001e#\u001811Ü\u001bióª' } },
  { name: 'e1',
    center: '53471e2318b931dc1b69f3a8',
    min_age: 1,
    max_age: 6,
    createdAt: Fri Apr 11 2014 00:41:39 GMT+0200 (W. Europe Summer Time),
    updatedAt: Fri Apr 11 2014 00:41:39 GMT+0200 (W. Europe Summer Time),
    _id: { _bsontype: 'ObjectID', id: 'SG\u001e#\u001811Ü\u001bió«' } } ]
error: A hook (`orm`) failed to load!

Modèle de chambre:

module.exports = {

    schema: true,

    attributes: {

        name: {
            type: 'string',
            required: true,
            unique: true,
            minLength: 3
        },

        center: {
            model: 'center'
        },

        min_age: {
            type: 'integer',
            required: true
        },

        max_age: {
            type: 'integer',
            required: true
        }
    }
}

Était-ce utile?

La solution

C'était un bug de voiles et il a été corrigé.Merci tout le monde

Autres conseils

Vous devez modifier la base de données de la base de données de disque par défaut vers une base de données de votre choix. Je faisais face à un problème similaire et à changer de base de données de "disque" sur "MongoDB" corrigé mon problème. Il semble que la base de données par défaut est incapable d'appliquer une contrainte unique.

J'espère que cela résout votre problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top