PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara saya mendapatkan alembic untuk memancarkan DDL khusus di after_create?

Level tabel before_create/after_create dikeluarkan (hanya bukan level metadata). Anda perlu memastikan apa pun yang terjadi dalam skrip env.py Anda pada akhirnya melibatkan penyiapan event listener tersebut.

Kode yang Anda miliki di sini terlihat sedikit mencurigakan:

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

Session.__table__ di sini hanya akan menjadi satu Table contoh dan itu mungkin bukan yang Anda lihat di skrip alembic. create_table alembic perintah membuat Table secara lokal dan hanya menjalankan pembuatan di atasnya, jadi Anda perlu mendengarkan semua objek Tabel secara global:

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

jika peristiwa ini hanya untuk satu tabel khusus ini, maka Anda tidak akan menggunakan peristiwa apa pun, Anda cukup meletakkan DDL() untuk pemicu tersebut secara langsung di skrip migrasi Anda, tepat setelah ia memanggil 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. Bagaimana cara membuat daftar semua database dan skemanya di postgresql?

  2. Bagaimana menemukan jarak terpendek dari titik ke poligon?

  3. menyapu dibatalkan! ERROR:harus pemilik database

  4. 4 Cara Memilih Baris Duplikat di PostgreSQL

  5. postgres truncate lambat