Ejemplo n.º 1
0
def upgrade():
    op.create_table(
    	'activities',
	     sa.Column('activity_id',sa.Integer, primary_key=True),
	     sa.Column('name',sa.String(80), nullable=False),
	     sa.Column('description',sa.Text(), nullable=False),
	     sa.Column('duration',sa.BigInteger) ,
	     sa.Column('difficulty',sa.String(80)),
	     sa.Column('pricing',psql_json),
	     sa.Column('schedule',psql_array(sa.DateTime(timezone=False)))
    )
Ejemplo n.º 2
0
    def get_merged_chroots(
        cls, first: int, last: int
    ) -> Optional[Iterable["CoprBuildModel"]]:
        """Returns a list of unique build ids with merged status, chroots
        Details:
        https://github.com/packit-service/packit-service/pull/674#discussion_r439819852
        """
        with get_sa_session() as session:
            builds = (
                session.query(
                    # We need something to order our merged builds by,
                    # so set new_id to be min(ids of to-be-merged rows)
                    func.min(CoprBuildModel.id).label("new_id"),
                    # Select identical element(s)
                    CoprBuildModel.build_id,
                    # Merge chroots and statuses from different rows into one
                    func.array_agg(psql_array([CoprBuildModel.target])).label("target"),
                    func.array_agg(psql_array([CoprBuildModel.status])).label("status"),
                )
                .group_by(CoprBuildModel.build_id)  # Group by identical element(s)
                .order_by(desc("new_id"))[first:last]
            )

            return builds