Skip to content

Commit

Permalink
[revert] Reverting apache#5445
Browse files Browse the repository at this point in the history
  • Loading branch information
John Bodley committed Mar 22, 2019
1 parent a08e676 commit 66eee14
Show file tree
Hide file tree
Showing 6 changed files with 195 additions and 61 deletions.
5 changes: 2 additions & 3 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ requests==2.20.0
retry==0.9.2
selenium==3.141.0
simplejson==3.15.0
six==1.11.0 # via bleach, cryptography, isodate, pathlib2, polyline, pydruid, python-dateutil, sqlalchemy-utils, wtforms-json
six==1.11.0 # via bleach, cryptography, isodate, pathlib2, polyline, pydruid, python-dateutil, sqlalchemy-utils
sqlalchemy-utils==0.32.21
sqlalchemy==1.2.18
sqlparse==0.2.4
Expand All @@ -70,5 +70,4 @@ urllib3==1.22 # via requests, selenium
vine==1.1.4 # via amqp
webencodings==0.5.1 # via bleach
werkzeug==0.14.1 # via flask
wtforms-json==0.3.3
wtforms==2.2.1 # via flask-wtf, wtforms-json
wtforms==2.2.1 # via flask-wtf
1 change: 0 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,6 @@ def get_git_sha():
'sqlalchemy-utils',
'sqlparse',
'unicodecsv',
'wtforms-json',
],
extras_require={
'cors': ['flask-cors>=2.0.0'],
Expand Down
3 changes: 0 additions & 3 deletions superset/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,16 +29,13 @@
from flask_migrate import Migrate
from flask_wtf.csrf import CSRFProtect
from werkzeug.contrib.fixers import ProxyFix
import wtforms_json

from superset import config
from superset.connectors.connector_registry import ConnectorRegistry
from superset.security import SupersetSecurityManager
from superset.utils.core import (
get_update_perms_flag, pessimistic_connection_handling, setup_cache)

wtforms_json.init()

APP_DIR = os.path.dirname(__file__)
CONFIG_MODULE = os.environ.get('SUPERSET_CONFIG', 'superset.config')

Expand Down
3 changes: 2 additions & 1 deletion superset/connectors/druid/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -410,7 +410,7 @@ class DruidDatasource(Model, BaseDatasource):
baselink = 'druiddatasourcemodelview'

# Columns
datasource_name = Column(String(255), nullable=False)
datasource_name = Column(String(255))
is_hidden = Column(Boolean, default=False)
filter_select_enabled = Column(Boolean, default=True) # override default
fetch_values_from = Column(String(100))
Expand All @@ -420,6 +420,7 @@ class DruidDatasource(Model, BaseDatasource):
'DruidCluster', backref='datasources', foreign_keys=[cluster_name])
owners = relationship(owner_class, secondary=druiddatasource_user,
backref='druiddatasources')
UniqueConstraint('cluster_name', 'datasource_name')

export_fields = (
'datasource_name', 'is_hidden', 'description', 'default_endpoint',
Expand Down
53 changes: 0 additions & 53 deletions superset/migrations/versions/937d04c16b64_update_datasources.py

This file was deleted.

191 changes: 191 additions & 0 deletions superset/migrations/versions/b54a0b7160e4_form_non_nullable.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,191 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
"""form non-nullable
Revision ID: b54a0b7160e4
Revises: c82ee8a39623
Create Date: 2019-03-22 13:39:36.118916
"""

# revision identifiers, used by Alembic.
revision = 'b54a0b7160e4'
down_revision = 'c82ee8a39623'

from alembic import op
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String, Text

from superset import db
from superset.utils.core import MediumText

Base = declarative_base()


class BaseColumnMixin(object):
id = Column(Integer, primary_key=True)
column_name = Column(String(255))
description = Column(Text)
type = Column(String(32))
verbose_name = Column(String(1024))


class BaseDatasourceMixin(object):
id = Column(Integer, primary_key=True)
description = Column(Text)


class BaseMetricMixin(object):
id = Column(Integer, primary_key=True)
d3format = Column(String(128))
description = Column(Text)
metric_name = Column(String(512))
metric_type = Column(String(32))
verbose_name = Column(String(1024))
warning_text = Column(Text)


class Annotation(Base):
__tablename__ = 'annotation'

id = Column(Integer, primary_key=True)
long_descr = Column(Text)
json_metadata = Column(Text)
short_descr = Column(String(500))


class Dashboard(Base):
__tablename__ = 'dashboards'

id = Column(Integer, primary_key=True)
css = Column(Text)
dashboard_title = Column(String(500))
description = Column(Text)
json_metadata = Column(Text)
position_json = Column(MediumText())
slug = Column(String(255))


class Database(Base):
__tablename__ = 'dbs'

id = Column(Integer, primary_key=True)
database_name = Column(String(250))
extra = Column(Text)
force_ctas_schema = Column(String(250))
sqlalchemy_uri = Column(String(1024))
verbose_name = Column(String(250))


class DruidCluster(Base):
__tablename__ = 'clusters'

id = Column(Integer, primary_key=True)
broker_host = Column(String(255))
broker_endpoint = Column(String(255))
cluster_name = Column(String(250))
verbose_name = Column(String(250))


class DruidColumn(BaseColumnMixin, Base):
__tablename__ = 'columns'

dimension_spec_json = Column(Text)


class DruidDatasource(BaseDatasourceMixin, Base):
__tablename__ = 'datasources'

datasource_name = Column(String(255))
default_endpoint = Column(Text)
fetch_values_from = Column(String(100))


class DruidMetric(BaseMetricMixin, Base):
__tablename__ = 'metrics'

json = Column(Text)


class Slice(Base):
__tablename__ = 'slices'

id = Column(Integer, primary_key=True)
description = Column(Text)
params = Column(Text)
slice_name = Column(String(250))
viz_type = Column(String(250))


class SqlaTable(BaseDatasourceMixin, Base):
__tablename__ = 'tables'

default_endpoint = Column(MediumText())
fetch_values_predicate = Column(String(1000))
main_dttm_col = Column(String(250))
schema = Column(String(255))
sql = Column(Text)
table_name = Column(String(250))
template_params = Column(Text)


class SqlMetric(BaseMetricMixin, Base):
__tablename__ = 'sql_metrics'

expression = Column(Text)


class TableColumn(BaseColumnMixin, Base):
__tablename__ = 'table_columns'

database_expression = Column(String(255))
expression = Column(Text)
python_date_format = Column(String(255))


def upgrade():
bind = op.get_bind()
session = db.Session(bind=bind)

tables = [
Annotation,
Dashboard,
Database,
DruidCluster,
DruidColumn,
DruidDatasource,
DruidMetric,
Slice,
SqlaTable,
SqlMetric,
TableColumn,
]

for table in tables:
for record in session.query(table).all():
for col in record.__table__.columns.values():
if not col.primary_key:
if getattr(record, col.name) is None:
setattr(record, col.name, '')

session.commit()

session.close()


def downgrade():
pass

0 comments on commit 66eee14

Please sign in to comment.