fix nodes latest_version revision
authorSofia Papagiannaki <papagian@gmail.com>
Thu, 19 Jul 2012 11:43:20 +0000 (14:43 +0300)
committerSofia Papagiannaki <papagian@gmail.com>
Thu, 19 Jul 2012 11:43:20 +0000 (14:43 +0300)
snf-pithos-backend/pithos/backends/lib/sqlalchemy/alembic/versions/3dd56e750a3_fix_latest_version.py [new file with mode: 0644]

diff --git a/snf-pithos-backend/pithos/backends/lib/sqlalchemy/alembic/versions/3dd56e750a3_fix_latest_version.py b/snf-pithos-backend/pithos/backends/lib/sqlalchemy/alembic/versions/3dd56e750a3_fix_latest_version.py
new file mode 100644 (file)
index 0000000..eb8f278
--- /dev/null
@@ -0,0 +1,37 @@
+"""Fix latest_version
+
+Revision ID: 3dd56e750a3
+Revises: 230f8ce9c90f
+Create Date: 2012-07-19 14:36:24.242310
+
+"""
+
+# revision identifiers, used by Alembic.
+revision = '3dd56e750a3'
+down_revision = '230f8ce9c90f'
+
+from alembic import op
+import sqlalchemy as sa
+from sqlalchemy.sql import table, column
+from sqlalchemy.sql.expression import desc
+
+def upgrade():
+    n = table('nodes', 
+        column('node', sa.Integer),
+        column('latest_version', sa.Integer)
+    )
+    v = table('versions', 
+        column('node', sa.Integer),
+        column('mtime', sa.Integer),
+        column('serial', sa.Integer),
+    )
+    
+    s = sa.select([v.c.serial]).where(n.c.node == v.c.node).order_by(desc(v.c.mtime)).limit(1)
+    op.execute(
+        n.update().\
+            values({'latest_version':s})
+            )
+
+
+def downgrade():
+    pass