Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding in Second and Minute time grains for MySQL #696

Merged
merged 8 commits into from
Jul 13, 2016

Conversation

alanmcruickshank
Copy link
Contributor

Adding in Second and Minute time grains for MySQL

@coveralls
Copy link

coveralls commented Jun 29, 2016

Coverage Status

Coverage remained the same at 81.085% when pulling db06a7c on alanmcruickshank:master into dbb9356 on airbnb:master.

… to the models for Dashboards or Slices (using declarative base)
@alanmcruickshank
Copy link
Contributor Author

@mistercrunch - as part of the work around the autorefresh settings for the dashboards I've also fixed one of the migrations to now use declarative base. Consider it a seperate commit, but will need to be merged in preparation for the autorefresh work.

@coveralls
Copy link

coveralls commented Jun 29, 2016

Coverage Status

Coverage remained the same at 81.085% when pulling 0b6dd69 on alanmcruickshank:master into dbb9356 on airbnb:master.

@mistercrunch
Copy link
Member

Which database you using? I'm still confused as to why migrations are working in the context of travis but aren't working for some users. The declarative base thing should not be necessary from my understanding.

@alanmcruickshank
Copy link
Contributor Author

I'm using mysql. The migration works fine normally. When I add new fields
into the model however the migration fails because it tries to query all
the fields in the model, even though the two new ones haven't been added
yet (because the migration that adds them is later in the chain of
migrations).

When applying the migration I've edited (before editing it) I get a SQL
error of field not found for the two fields I'm adding as part of the
dashboard refresh work, because it's using models.py where that field is
defined, but the migration which adds the defined column happens later.
I've not for a stack trace in front of me but I can whip one up if it would
be helpful.

Also, if I'm doing something ridiculous though, let me know. I'm pretty
inexperienced with migrations and alembic.

On Wed, 29 Jun 2016 21:09 Maxime Beauchemin, notifications@github.com
wrote:

Which database you using? I'm still confused as to why migrations are
working in the context of travis but aren't working for some users. The
declarative base thing should not be necessary from my understanding.


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#696 (comment), or mute
the thread
https://github.com/notifications/unsubscribe/AEdFuHAGkXB1-HPfp5plR8QumnmecZekks5qQtDfgaJpZM4JBGLk
.


Alan Cruickshank
E: alanmcruickshank@gmail.com
T: +44 770 6851825

@mistercrunch
Copy link
Member

So when you install a new version you then run caravel db upgrade and you get an error? What does the stack trace look like then?

@alanmcruickshank
Copy link
Contributor Author

alanmcruickshank commented Jun 30, 2016

@mistercrunch if I add two columns into the dashboard model as follows:

class Dashboard(Model, AuditMixinNullable):

    """The dashboard object!"""

    __tablename__ = 'dashboards'
    id = Column(Integer, primary_key=True)
    dashboard_title = Column(String(500))
    position_json = Column(Text)
    description = Column(Text)
    css = Column(Text)
    json_metadata = Column(Text)
    slug = Column(String(255), unique=True)
    slices = relationship(
        'Slice', secondary=dashboard_slices, backref='dashboards')
    owners = relationship("User", secondary=dashboard_user)
    # A Zero for autorefresh_seconds implies no autorefresh
    autorefresh_seconds = Column(Integer, default=0, nullable=False)
    autorefresh_from_cache = Column(Boolean, default=True, nullable=False)

then here's the stack trace I get if I don't change the migration:

INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
INFO  [alembic.runtime.migration] Running upgrade  -> 4e6a06bad7a8, Init
INFO  [alembic.runtime.migration] Running upgrade 4e6a06bad7a8 -> 5a7bad26f2a7, empty message
INFO  [alembic.runtime.migration] Running upgrade 5a7bad26f2a7 -> 1e2841a4128, empty message
INFO  [alembic.runtime.migration] Running upgrade 1e2841a4128 -> 2929af7925ed, TZ offsets in data sources
INFO  [alembic.runtime.migration] Running upgrade 2929af7925ed -> 289ce07647b, Add encrypted password field
INFO  [alembic.runtime.migration] Running upgrade 289ce07647b -> 1a48a5411020, adding slug to dash
INFO  [alembic.runtime.migration] Running upgrade 1a48a5411020 -> 315b3f4da9b0, adding log model
INFO  [alembic.runtime.migration] Running upgrade 315b3f4da9b0 -> 55179c7f25c7, sqla_descr
INFO  [alembic.runtime.migration] Running upgrade 55179c7f25c7 -> 12d55656cbca, is_featured
/usr/local/lib/python2.7/site-packages/alembic-0.8.6-py2.7.egg/alembic/util/messaging.py:69: UserWarning: Skipping unsupported ALTER for creation of implicit constraint
  warnings.warn(msg)
INFO  [alembic.runtime.migration] Running upgrade 12d55656cbca -> 2591d77e9831, user_id
INFO  [alembic.runtime.migration] Running upgrade 2591d77e9831 -> 8e80a26a31db, empty message
INFO  [alembic.runtime.migration] Running upgrade 8e80a26a31db -> 7dbf98566af7, empty message
INFO  [alembic.runtime.migration] Running upgrade 7dbf98566af7 -> 43df8de3a5f4, empty message
INFO  [alembic.runtime.migration] Running upgrade 43df8de3a5f4 -> d827694c7555, css templates
INFO  [alembic.runtime.migration] Running upgrade d827694c7555 -> 430039611635, log more
INFO  [alembic.runtime.migration] Running upgrade 430039611635 -> 18e88e1cc004, making audit nullable
INFO  [alembic.runtime.migration] Running upgrade 18e88e1cc004 -> 836c0bf75904, cache_timeouts
INFO  [alembic.runtime.migration] Running upgrade 18e88e1cc004 -> a2d606a761d9, adding favstar model
INFO  [alembic.runtime.migration] Running upgrade a2d606a761d9, 836c0bf75904 -> d2424a248d63, empty message
INFO  [alembic.runtime.migration] Running upgrade d2424a248d63 -> 763d4b211ec9, fixing audit fk
INFO  [alembic.runtime.migration] Running upgrade d2424a248d63 -> 1d2ddd543133, log dt
INFO  [alembic.runtime.migration] Running upgrade 1d2ddd543133, 763d4b211ec9 -> fee7b758c130, empty message
INFO  [alembic.runtime.migration] Running upgrade fee7b758c130 -> 867bf4f117f9, Adding extra field to Database model
INFO  [alembic.runtime.migration] Running upgrade 867bf4f117f9 -> bb51420eaf83, add schema to table model
INFO  [alembic.runtime.migration] Running upgrade bb51420eaf83 -> b4456560d4f3, change_table_unique_constraint
INFO  [alembic.runtime.migration] Running upgrade b4456560d4f3 -> 4fa88fe24e94, owners_many_to_many
INFO  [alembic.runtime.migration] Running upgrade 4fa88fe24e94 -> c3a8f8611885, Materializing permission
INFO  [alembic.runtime.migration] Running upgrade c3a8f8611885 -> f0fbf6129e13, Adding verbose_name to tablecolumn
INFO  [alembic.runtime.migration] Running upgrade f0fbf6129e13 -> 956a063c52b3, adjusting key length
INFO  [alembic.runtime.migration] Running upgrade 956a063c52b3 -> 1226819ee0e3, Fix wrong constraint on table columns
WARNI [root] Could not find or drop constraint on `columns`
INFO  [alembic.runtime.migration] Running upgrade 1226819ee0e3 -> d8bc074f7aad, Add new field 'is_restricted' to SqlMetric and DruidMetric
INFO  [alembic.runtime.migration] Running upgrade d8bc074f7aad -> 27ae655e4247, Make creator owners
Traceback (most recent call last):
  File "/usr/local/bin/caravel", line 6, in <module>
    exec(compile(open(__file__).read(), __file__, 'exec'))
  File "/caravel/caravel/bin/caravel", line 128, in <module>
    manager.run()
  File "/usr/local/lib/python2.7/site-packages/Flask_Script-2.0.5-py2.7.egg/flask_script/__init__.py", line 412, in run
    result = self.handle(sys.argv[0], sys.argv[1:])
  File "/usr/local/lib/python2.7/site-packages/Flask_Script-2.0.5-py2.7.egg/flask_script/__init__.py", line 383, in handle
    res = handle(*args, **config)
  File "/usr/local/lib/python2.7/site-packages/Flask_Script-2.0.5-py2.7.egg/flask_script/commands.py", line 216, in __call__
    return self.run(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/Flask_Migrate-1.5.1-py2.7.egg/flask_migrate/__init__.py", line 200, in upgrade
    command.upgrade(config, revision, sql=sql, tag=tag)
  File "/usr/local/lib/python2.7/site-packages/alembic-0.8.6-py2.7.egg/alembic/command.py", line 174, in upgrade
    script.run_env()
  File "/usr/local/lib/python2.7/site-packages/alembic-0.8.6-py2.7.egg/alembic/script/base.py", line 397, in run_env
    util.load_python_file(self.dir, 'env.py')
  File "/usr/local/lib/python2.7/site-packages/alembic-0.8.6-py2.7.egg/alembic/util/pyfiles.py", line 93, in load_python_file
    module = load_module_py(module_id, path)
  File "/usr/local/lib/python2.7/site-packages/alembic-0.8.6-py2.7.egg/alembic/util/compat.py", line 79, in load_module_py
    mod = imp.load_source(module_id, path, fp)
  File "/caravel/caravel/migrations/env.py", line 90, in <module>
    run_migrations_online()
  File "/caravel/caravel/migrations/env.py", line 83, in run_migrations_online
    context.run_migrations()
  File "<string>", line 8, in run_migrations
  File "/usr/local/lib/python2.7/site-packages/alembic-0.8.6-py2.7.egg/alembic/runtime/environment.py", line 797, in run_migrations
    self.get_context().run_migrations(**kw)
  File "/usr/local/lib/python2.7/site-packages/alembic-0.8.6-py2.7.egg/alembic/runtime/migration.py", line 312, in run_migrations
    step.migration_fn(**kw)
  File "/caravel/caravel/migrations/versions/27ae655e4247_make_creator_owners.py", line 22, in upgrade
    objects += session.query(models.Dashboard).all()
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2613, in all
    return list(self)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2761, in __iter__
    return self._execute_and_instances(context)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2776, in _execute_and_instances
    result = conn.execute(querycontext.statement, self._params)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 914, in execute
    return meth(self, multiparams, params)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/sql/elements.py", line 323, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1010, in _execute_clauseelement
    compiled_sql, distilled_params
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1146, in _execute_context
    context)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1341, in _handle_dbapi_exception
    exc_info
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/util/compat.py", line 202, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1139, in _execute_context
    context)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 450, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such column: dashboards.autorefresh_seconds [SQL: u'SELECT dashboards.created_on AS dashboards_created_on, dashboards.changed_on AS dashboards_changed_on, dashboards.id AS dashboards_id, dashboards.dashboard_title AS dashboards_dashboard_title, dashboards.position_json AS dashboards_position_json, dashboards.description AS dashboards_description, dashboards.css AS dashboards_css, dashboards.json_metadata AS dashboards_json_metadata, dashboards.slug AS dashboards_slug, dashboards.autorefresh_seconds AS dashboards_autorefresh_seconds, dashboards.autorefresh_from_cache AS dashboards_autorefresh_from_cache, dashboards.changed_by_fk AS dashboards_changed_by_fk, dashboards.created_by_fk AS dashboards_created_by_fk \nFROM dashboards']
The command '/bin/sh -c caravel db upgrade' returned a non-zero code: 1

@mistercrunch
Copy link
Member

What about you do, in order:

  • start clean
  • run the migrations caravel db upgrade
  • update models.py and add your new columns
  • generate a new migration script caravel db migrate -m 'some message'
  • run the migrations caravel db upgrade, that's how your physical column get created in the DB

…ds added to the models for Dashboards or Slices (using declarative base)"

This reverts commit 0b6dd69.
@alanmcruickshank
Copy link
Contributor Author

@mistercrunch I'll try what you suggested with the migrations and if I still need to make changes I'll submit them in a seperate PR. In the mean time, it's probably still worth merging in the new MySQL time grains.

@coveralls
Copy link

coveralls commented Jul 2, 2016

Coverage Status

Coverage remained the same at 81.036% when pulling bbe51c1 on alanmcruickshank:master into 8135c24 on airbnb:master.

@coveralls
Copy link

coveralls commented Jul 2, 2016

Coverage Status

Coverage remained the same at 81.036% when pulling bbe51c1 on alanmcruickshank:master into 8135c24 on airbnb:master.

@alanmcruickshank
Copy link
Contributor Author

@mistercrunch I went through the steps you suggested and they do successfully create the new column in the DB.

However, when I then clean everything and run through the migrations from scratch, I get to the same error (stacktrace below). Migration 27ae655e4247 still fails because it's trying to query a field which exists in the model but not in the DB (yet). Those fields don't get added till a few steps later. I think it's still sensible to change that migration to declarative base to avoid this (and any other issues around creating new fields in the future). Thoughts?

INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
INFO  [alembic.runtime.migration] Running upgrade  -> 4e6a06bad7a8, Init
INFO  [alembic.runtime.migration] Running upgrade 4e6a06bad7a8 -> 5a7bad26f2a7, empty message
INFO  [alembic.runtime.migration] Running upgrade 5a7bad26f2a7 -> 1e2841a4128, empty message
INFO  [alembic.runtime.migration] Running upgrade 1e2841a4128 -> 2929af7925ed, TZ offsets in data sources
INFO  [alembic.runtime.migration] Running upgrade 2929af7925ed -> 289ce07647b, Add encrypted password field
INFO  [alembic.runtime.migration] Running upgrade 289ce07647b -> 1a48a5411020, adding slug to dash
INFO  [alembic.runtime.migration] Running upgrade 1a48a5411020 -> 315b3f4da9b0, adding log model
INFO  [alembic.runtime.migration] Running upgrade 315b3f4da9b0 -> 55179c7f25c7, sqla_descr
INFO  [alembic.runtime.migration] Running upgrade 55179c7f25c7 -> 12d55656cbca, is_featured
/home/alan/caravel/caravel/env/local/lib/python2.7/site-packages/alembic-0.8.6-py2.7.egg/alembic/util/messaging.py:69: UserWarning: Skipping unsupported ALTER for creation of implicit constraint
  warnings.warn(msg)
INFO  [alembic.runtime.migration] Running upgrade 12d55656cbca -> 2591d77e9831, user_id
INFO  [alembic.runtime.migration] Running upgrade 2591d77e9831 -> 8e80a26a31db, empty message
INFO  [alembic.runtime.migration] Running upgrade 8e80a26a31db -> 7dbf98566af7, empty message
INFO  [alembic.runtime.migration] Running upgrade 7dbf98566af7 -> 43df8de3a5f4, empty message
INFO  [alembic.runtime.migration] Running upgrade 43df8de3a5f4 -> d827694c7555, css templates
INFO  [alembic.runtime.migration] Running upgrade d827694c7555 -> 430039611635, log more
INFO  [alembic.runtime.migration] Running upgrade 430039611635 -> 18e88e1cc004, making audit nullable
INFO  [alembic.runtime.migration] Running upgrade 18e88e1cc004 -> 836c0bf75904, cache_timeouts
INFO  [alembic.runtime.migration] Running upgrade 18e88e1cc004 -> a2d606a761d9, adding favstar model
INFO  [alembic.runtime.migration] Running upgrade a2d606a761d9, 836c0bf75904 -> d2424a248d63, empty message
INFO  [alembic.runtime.migration] Running upgrade d2424a248d63 -> 763d4b211ec9, fixing audit fk
INFO  [alembic.runtime.migration] Running upgrade d2424a248d63 -> 1d2ddd543133, log dt
INFO  [alembic.runtime.migration] Running upgrade 1d2ddd543133, 763d4b211ec9 -> fee7b758c130, empty message
INFO  [alembic.runtime.migration] Running upgrade fee7b758c130 -> 867bf4f117f9, Adding extra field to Database model
INFO  [alembic.runtime.migration] Running upgrade 867bf4f117f9 -> bb51420eaf83, add schema to table model
INFO  [alembic.runtime.migration] Running upgrade bb51420eaf83 -> b4456560d4f3, change_table_unique_constraint
INFO  [alembic.runtime.migration] Running upgrade b4456560d4f3 -> 4fa88fe24e94, owners_many_to_many
INFO  [alembic.runtime.migration] Running upgrade 4fa88fe24e94 -> c3a8f8611885, Materializing permission
INFO  [alembic.runtime.migration] Running upgrade c3a8f8611885 -> f0fbf6129e13, Adding verbose_name to tablecolumn
INFO  [alembic.runtime.migration] Running upgrade f0fbf6129e13 -> 956a063c52b3, adjusting key length
INFO  [alembic.runtime.migration] Running upgrade 956a063c52b3 -> 1226819ee0e3, Fix wrong constraint on table columns
WARNI [root] Could not find or drop constraint on `columns`
INFO  [alembic.runtime.migration] Running upgrade 1226819ee0e3 -> d8bc074f7aad, Add new field 'is_restricted' to SqlMetric and DruidMetric
INFO  [alembic.runtime.migration] Running upgrade d8bc074f7aad -> 27ae655e4247, Make creator owners
Traceback (most recent call last):
  File "/home/alan/caravel/caravel/env/bin/caravel", line 6, in <module>
    exec(compile(open(__file__).read(), __file__, 'exec'))
  File "/home/alan/caravel/caravel/caravel/bin/caravel", line 128, in <module>
    manager.run()
  File "/home/alan/caravel/caravel/env/local/lib/python2.7/site-packages/Flask_Script-2.0.5-py2.7.egg/flask_script/__init__.py", line 412, in run
    result = self.handle(sys.argv[0], sys.argv[1:])
  File "/home/alan/caravel/caravel/env/local/lib/python2.7/site-packages/Flask_Script-2.0.5-py2.7.egg/flask_script/__init__.py", line 383, in handle
    res = handle(*args, **config)
  File "/home/alan/caravel/caravel/env/local/lib/python2.7/site-packages/Flask_Script-2.0.5-py2.7.egg/flask_script/commands.py", line 216, in __call__
    return self.run(*args, **kwargs)
  File "/home/alan/caravel/caravel/env/local/lib/python2.7/site-packages/Flask_Migrate-1.5.1-py2.7.egg/flask_migrate/__init__.py", line 200, in upgrade
    command.upgrade(config, revision, sql=sql, tag=tag)
  File "/home/alan/caravel/caravel/env/local/lib/python2.7/site-packages/alembic-0.8.6-py2.7.egg/alembic/command.py", line 174, in upgrade
    script.run_env()
  File "/home/alan/caravel/caravel/env/local/lib/python2.7/site-packages/alembic-0.8.6-py2.7.egg/alembic/script/base.py", line 397, in run_env
    util.load_python_file(self.dir, 'env.py')
  File "/home/alan/caravel/caravel/env/local/lib/python2.7/site-packages/alembic-0.8.6-py2.7.egg/alembic/util/pyfiles.py", line 93, in load_python_file
    module = load_module_py(module_id, path)
  File "/home/alan/caravel/caravel/env/local/lib/python2.7/site-packages/alembic-0.8.6-py2.7.egg/alembic/util/compat.py", line 79, in load_module_py
    mod = imp.load_source(module_id, path, fp)
  File "/home/alan/caravel/caravel/caravel/migrations/env.py", line 90, in <module>
    run_migrations_online()
  File "/home/alan/caravel/caravel/caravel/migrations/env.py", line 83, in run_migrations_online
    context.run_migrations()
  File "<string>", line 8, in run_migrations
  File "/home/alan/caravel/caravel/env/local/lib/python2.7/site-packages/alembic-0.8.6-py2.7.egg/alembic/runtime/environment.py", line 797, in run_migrations
    self.get_context().run_migrations(**kw)
  File "/home/alan/caravel/caravel/env/local/lib/python2.7/site-packages/alembic-0.8.6-py2.7.egg/alembic/runtime/migration.py", line 312, in run_migrations
    step.migration_fn(**kw)
  File "/home/alan/caravel/caravel/caravel/migrations/versions/27ae655e4247_make_creator_owners.py", line 22, in upgrade
    objects += session.query(models.Dashboard).all()
  File "build/bdist.linux-x86_64/egg/sqlalchemy/orm/query.py", line 2613, in all
  File "build/bdist.linux-x86_64/egg/sqlalchemy/orm/query.py", line 2761, in __iter__
  File "build/bdist.linux-x86_64/egg/sqlalchemy/orm/query.py", line 2776, in _execute_and_instances
  File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/base.py", line 914, in execute
  File "build/bdist.linux-x86_64/egg/sqlalchemy/sql/elements.py", line 323, in _execute_on_connection
  File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/base.py", line 1010, in _execute_clauseelement
  File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/base.py", line 1146, in _execute_context
  File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/base.py", line 1341, in _handle_dbapi_exception
  File "build/bdist.linux-x86_64/egg/sqlalchemy/util/compat.py", line 202, in raise_from_cause
  File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/base.py", line 1139, in _execute_context
  File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/default.py", line 450, in do_execute
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such column: dashboards.autorefresh_seconds [SQL: u'SELECT dashboards.created_on AS dashboards_created_on, dashboards.changed_on AS dashboards_changed_on, dashboards.id AS dashboards_id, dashboards.dashboard_title AS dashboards_dashboard_title, dashboards.position_json AS dashboards_position_json, dashboards.description AS dashboards_description, dashboards.css AS dashboards_css, dashboards.json_metadata AS dashboards_json_metadata, dashboards.slug AS dashboards_slug, dashboards.autorefresh_seconds AS dashboards_autorefresh_seconds, dashboards.autorefresh_from_cache AS dashboards_autorefresh_from_cache, dashboards.changed_by_fk AS dashboards_changed_by_fk, dashboards.created_by_fk AS dashboards_created_by_fk \nFROM dashboards']

@coveralls
Copy link

coveralls commented Jul 5, 2016

Coverage Status

Coverage remained the same at 81.036% when pulling a2e63e9 on alanmcruickshank:master into 8135c24 on airbnb:master.

@mistercrunch mistercrunch merged commit 65efe53 into apache:master Jul 13, 2016
zhaoyongjie pushed a commit to zhaoyongjie/incubator-superset that referenced this pull request Nov 17, 2021
zhaoyongjie pushed a commit to zhaoyongjie/incubator-superset that referenced this pull request Nov 24, 2021
zhaoyongjie pushed a commit to zhaoyongjie/incubator-superset that referenced this pull request Nov 25, 2021
zhaoyongjie pushed a commit to zhaoyongjie/incubator-superset that referenced this pull request Nov 26, 2021
@mistercrunch mistercrunch added 🏷️ bot A label used by `supersetbot` to keep track of which PR where auto-tagged with release labels 🚢 0.11.0 labels Feb 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🏷️ bot A label used by `supersetbot` to keep track of which PR where auto-tagged with release labels 🚢 0.11.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants