PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Użyj kolumn generowanych przez Postgres w modelu Sequelize

Dopóki Sequelize nie obsługuje pól tylko do odczytu i typu danych GENERATED, możesz obejść Sequelize z niestandardowym typem danych:

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

Spowoduje to poprawną generację kolumny w postgresie przy użyciu sync() i zapobiec ustawianiu generatedValue w javascript, zgłaszając błąd.

Zakładając, że sekwencja nigdy nie próbuje zaktualizować pola, jeśli nie uległo ono zmianie, jak określono w https://sequelize.org/master/manual/model-instances.html#change-awareness-of-save , to powinno działać.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy wymagane jest zamknięcie połączenia Psycopg2 na końcu skryptu?

  2. Czego potrzebuję, aby pg_dumpall działał bez hasła?

  3. django.db.utils.IntegrityError:kolumna location_city zawiera wartości null

  4. Wybierz N wierszy z wartościami mieszanymi

  5. Jak stworzyć użytkownika dla bazy danych w postgresql?