sql >> Databáze >  >> RDS >> PostgreSQL

Použijte sloupce generované Postgresem v modelu Sequelize

Dokud nebude Sequelize podporovat pole readOnly a datový typ GENERATED, můžete Sequelize obejít pomocí vlastního datového typu:

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

Toto vygeneruje sloupec správně v postgresu při použití sync() a zabránit nastavení generatedValue v javascriptu vyvoláním chyby.

Za předpokladu, že se sequelize nikdy nepokusí pole aktualizovat, pokud se nezměnilo, jak je uvedeno v https://sequelize.org/master/manual/model-instances.html#change-awareness-of-save , pak by to mělo fungovat.




  1. Jak přidám hlas do své databáze ve formuláři?

  2. Dynamický název tabulky v postgreSQL 9.3

  3. GROUP_CONCAT() počet řádků při seskupování podle textového pole

  4. Změna databáze SQL serveru z tabulkové na vícerozměrnou