You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by jo...@apache.org on 2018/06/06 23:56:43 UTC

[incubator-superset] branch master updated: [migrations] Fix time grain SQLA (#5135)

This is an automated email from the ASF dual-hosted git repository.

johnbodley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-superset.git


The following commit(s) were added to refs/heads/master by this push:
     new 0545d11  [migrations] Fix time grain SQLA (#5135)
0545d11 is described below

commit 0545d11a2243e6982622288e9113620e1a203789
Author: John Bodley <45...@users.noreply.github.com>
AuthorDate: Wed Jun 6 16:56:39 2018 -0700

    [migrations] Fix time grain SQLA (#5135)
---
 .../versions/c5756bec8b47_time_grain_sqla.py       | 65 ++++++++++++++++++++++
 1 file changed, 65 insertions(+)

diff --git a/superset/migrations/versions/c5756bec8b47_time_grain_sqla.py b/superset/migrations/versions/c5756bec8b47_time_grain_sqla.py
new file mode 100644
index 0000000..06ce632
--- /dev/null
+++ b/superset/migrations/versions/c5756bec8b47_time_grain_sqla.py
@@ -0,0 +1,65 @@
+"""Time grain SQLA
+
+Revision ID: c5756bec8b47
+Revises: e502db2af7be
+Create Date: 2018-06-04 11:12:59.878742
+
+"""
+
+# revision identifiers, used by Alembic.
+revision = 'c5756bec8b47'
+down_revision = 'e502db2af7be'
+
+from alembic import op
+import json
+from sqlalchemy.ext.declarative import declarative_base
+from sqlalchemy import Column, Integer, String, Text
+
+from superset import db
+
+Base = declarative_base()
+
+
+class Slice(Base):
+    __tablename__ = 'slices'
+
+    id = Column(Integer, primary_key=True)
+    datasource_type = Column(String(200))
+    slice_name = Column(String(250))
+    params = Column(Text)
+
+
+def upgrade():
+    bind = op.get_bind()
+    session = db.Session(bind=bind)
+
+    for slc in session.query(Slice).all():
+        try:
+            params = json.loads(slc.params)
+
+            if params.get('time_grain_sqla') == 'Time Column':
+                params['time_grain_sqla'] = None
+                slc.params = json.dumps(params, sort_keys=True)
+        except Exception:
+            pass
+
+    session.commit()
+    session.close()
+
+
+def downgrade():
+    bind = op.get_bind()
+    session = db.Session(bind=bind)
+
+    for slc in session.query(Slice).all():
+        try:
+            params = json.loads(slc.params)
+
+            if params.get('time_grain_sqla') is None:
+                params['time_grain_sqla'] = 'Time Column'
+                slc.params = json.dumps(params, sort_keys=True)
+        except Exception:
+            pass
+
+    session.commit()
+    session.close()

-- 
To stop receiving notification emails like this one, please contact
johnbodley@apache.org.