sql >> Database teknologi >  >> RDS >> PostgreSQL

Postgresql-partition og sqlalchemy

Du kan bruge en MeasureMixin som begge klasser kan arve fra. Og brug derefter en event for at vedhæfte bordpartitionen.

from sqlalchemy import event

class MeasureMixin:
    city_id = Column(Integer, not_null=True)
    log_date = Column(Date, not_null=True)
    peaktemp = Column(Integer)
    unitsales = Column(Integer)

class Measure(MeasureMixin, Base):
    __tablename__ = 'measures'
    __table_args__ = {
        postgresql_partition_by: 'RANGE (log_date)'
    }

class Measure2020(MeasureMixin, Base):
    __tablename__ = 'measures2020'

Measure2020.__table__.add_is_dependent_on(Measure.__table__)

event.listen(
    Measure2020.__table__,
    "after_create",
    DDL("""ALTER TABLE measures ATTACH PARTITION measures2020
VALUES FROM ('2020-01-01') TO ('2021-01-01');""")
)


  1. MySQL MariaDB – Forespørgsel ved hjælp af Temp-tabel

  2. SQLite Slet

  3. PDO-forbindelse til localhost (ukendt mysql-servervært)

  4. Anskaffelse af en unik database-id til SQL Server 2005 og nyere