Statistics
| Branch: | Tag: | Revision:

root / snf-pithos-backend / pithos / backends / lib / sqlalchemy / alembic / versions / 3dd56e750a3_fix_latest_version.py @ f554bdb3

History | View | Annotate | Download (878 Bytes)

1 ca7812eb Sofia Papagiannaki
"""Fix latest_version
2 ca7812eb Sofia Papagiannaki

3 ca7812eb Sofia Papagiannaki
Revision ID: 3dd56e750a3
4 ca7812eb Sofia Papagiannaki
Revises: 230f8ce9c90f
5 ca7812eb Sofia Papagiannaki
Create Date: 2012-07-19 14:36:24.242310
6 ca7812eb Sofia Papagiannaki

7 ca7812eb Sofia Papagiannaki
"""
8 ca7812eb Sofia Papagiannaki
9 ca7812eb Sofia Papagiannaki
# revision identifiers, used by Alembic.
10 ca7812eb Sofia Papagiannaki
revision = '3dd56e750a3'
11 ca7812eb Sofia Papagiannaki
down_revision = '230f8ce9c90f'
12 ca7812eb Sofia Papagiannaki
13 ca7812eb Sofia Papagiannaki
from alembic import op
14 ca7812eb Sofia Papagiannaki
import sqlalchemy as sa
15 ca7812eb Sofia Papagiannaki
from sqlalchemy.sql import table, column
16 ca7812eb Sofia Papagiannaki
from sqlalchemy.sql.expression import desc
17 ca7812eb Sofia Papagiannaki
18 2715ade4 Sofia Papagiannaki
19 ca7812eb Sofia Papagiannaki
def upgrade():
20 2715ade4 Sofia Papagiannaki
    n = table('nodes',
21 2715ade4 Sofia Papagiannaki
              column('node', sa.Integer),
22 2715ade4 Sofia Papagiannaki
              column('latest_version', sa.Integer)
23 2715ade4 Sofia Papagiannaki
              )
24 2715ade4 Sofia Papagiannaki
    v = table('versions',
25 2715ade4 Sofia Papagiannaki
              column('node', sa.Integer),
26 2715ade4 Sofia Papagiannaki
              column('mtime', sa.Integer),
27 2715ade4 Sofia Papagiannaki
              column('serial', sa.Integer),
28 2715ade4 Sofia Papagiannaki
              )
29 2715ade4 Sofia Papagiannaki
30 2715ade4 Sofia Papagiannaki
    s = sa.select([v.c.serial]).where(
31 2715ade4 Sofia Papagiannaki
        n.c.node == v.c.node).order_by(desc(v.c.mtime)).limit(1)
32 ca7812eb Sofia Papagiannaki
    op.execute(
33 2715ade4 Sofia Papagiannaki
        n.update().
34 2715ade4 Sofia Papagiannaki
        values({'latest_version': s})
35 2715ade4 Sofia Papagiannaki
    )
36 ca7812eb Sofia Papagiannaki
37 ca7812eb Sofia Papagiannaki
38 ca7812eb Sofia Papagiannaki
def downgrade():
39 ca7812eb Sofia Papagiannaki
    pass