PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Използвайте колони, генерирани от Postgres, в модела Sequelize

Докато Sequelize поддържа полета само за четене и типа данни GENERATED, можете да заобиколите Sequelize с персонализиран тип данни:

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')
    },
  },
})

Това ще генерира колоната правилно в postgres при използване на sync() и предотвратява настройката на generatedValue в javascript чрез извеждане на грешка.

Ако приемем, че sequelize никога не се опитва да актуализира полето, ако то не е променено, както е посочено в https://sequelize.org/master/manual/model-instances.html#change-awareness-of-save , тогава трябва да работи.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres грешка при актуализиране на данните в колоната

  2. SequelizeConnectionError:самоподписан сертификат

  3. java.lang.ClassNotFoundException:org.postgresql.Driver, Android

  4. PostqreSQL в Rails:Как да накарам сървъра да работи локално И да приема връзки в сокета на домейна на Unix?

  5. postgres truncate е бавен