sql >> Databasteknik >  >> RDS >> PostgreSQL

Postgresql-partition och sqlalchemy

Du kan använda en MeasureMixin som båda klasserna kan ärva från. Och använd sedan en event för att fästa bordspartitionen.

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. Hur använder man Spring Boot med MySQL-databas och JPA?

  2. python:MYSQLdb. hur får man kolumnnamn utan att köra select * i en stor tabell?

  3. Skillnaden mellan två tabellstrukturer

  4. Oracle-klienten och nätverkskomponenter hittades inte