sql >> Database >  >> RDS >> PostgreSQL

Gebruik door Postgres gegenereerde kolommen in het Sequelize-model

Totdat Sequelize readOnly-velden en het GENERATED datatype ondersteunt, kun je Sequelize omzeilen met een aangepast datatype:

const Item = sequelize.define('Item', {
  someCol: { type: DataTypes.DOUBLE },
  someOtherCol: { type: DataTypes.DOUBLE },
  generatedValue: {
    type: 'DOUBLE PRECISION GENERATED ALWAYS AS (LEAST("someCol", "someOtherCol")) STORED',
    set() {
      throw new Error('generatedValue is read-only')
    },
  },
})

Dit genereert de kolom correct in postgres bij gebruik van sync() en voorkomen dat de generatedValue in javascript door een Error te genereren.

Ervan uitgaande dat sequelize nooit probeert het veld bij te werken als het niet is gewijzigd, zoals gespecificeerd in https://sequelize.org/master/manual/model-instances.html#change-awareness-of-save , dan zou het moeten werken.




  1. MySQL:Tabel afkappen versus verwijderen uit tabel

  2. Csv-bestandsgegevens invoegen in mysql-database

  3. kan niet meerdere tabellen opslaan in cakephp

  4. SQL-update uit tabel met willekeurige namen