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

Как да накарам alembic да излъчва персонализиран DDL на after_create?

Излъчват се събития на ниво таблица before_create/after_create (само не тези на ниво метаданни). трябва да се уверите, че каквото и да се случи във вашия скрипт env.py в крайна сметка включва тези слушатели на събития, които са настроени.

Кодът, който имате тук, изглежда малко подозрителен:

event.listen(Session.__table__, 'after_create', update_function)
event.listen(Session.__table__, 'after_create', update_trigger)

Session.__table__ тук ще има само една Table пример и това вероятно не е това, което ще видите в алембичния скрипт. Alembic create_table командата създава Table локално и просто изпълнява създаване върху него, така че ще трябва да слушате всички обекти на таблица глобално:

from sqlalchemy import Table
event.listen(Table, 'after_create', update_function)
event.listen(Table, 'after_create', update_trigger)

ако обаче тези събития са само за тази конкретна таблица, тогава не бихте използвали никакви събития, просто бихте поставили DDL() за тези тригери директно във вашия скрипт за мигриране, точно след мястото, където извиква create_table() .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Мога ли да използвам върната стойност на INSERT...RETURNING в друг INSERT?

  2. @Tailable(spring-data-reactive-mongodb) еквивалент в spring-data-r2dbc

  3. Как да експортирате получените данни в PostgreSQL в .CSV?

  4. Текущото състояние на управление на архивиране с отворен код за PostgreSQL

  5. Къде се записват файловете на базата данни на Postgres в ubuntu?