0

Currently Im using this model (with sails.js)

module.exports = {

   tableName: 'player_deaths',
   autoCreatedAt: false,
   autoUpdatedAt: false,
   attributes: {

      player_id: {

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

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

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

         required: true,
         type: 'string'
      },
      is_player: {

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

         required: true,
         type: 'string'
      },
      mostdamage_is_player: {

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

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

         required: true,
         type: 'integer'
      }
   },
   autoPk: false,
}

And im calling it like this

PlayersDeaths.find().sort('time desc').exec(function(err, data) {

         if(err || data.length === 0) {

            console.log(err,data)
            req.flash('errors', 'No deaths found');

            return res.redirect('/');
         }

         return res.view('community/deaths', { deaths: data});
      });

Thing is im getting this error

Unknown column 'playersdeath.id' in field list

Checking my model I dont even see the ID attribute listed... so why is it trying to access it?!

(the table does not have a pk)

Raggaer
  • 3,244
  • 8
  • 36
  • 67

2 Answers2

1

Looks like a primary key is required. If you use autoPk:false then you need to define a PK your self see https://github.com/balderdashy/waterline-docs/blob/master/models.md#autopk

However, you still maybe able to avoid this by using model.native() or model.query() (depending on your adapter)

http://sailsjs.org/#!/documentation/reference/waterline/models/native.html http://sailsjs.org/#!/documentation/reference/waterline/models/query.html

Meeker
  • 5,979
  • 2
  • 20
  • 38
-1

If you have a database Schema defined, maybe you need set you model like this

module.exports = {
    migrate: 'safe',
    autoPK : false,
    autoCreatedAt: false,
    autoUpdatedAt: false,

attributes: {
// ------
}
daronwolff
  • 1,994
  • 21
  • 18