This file documents any backwards-incompatible changes in Superset and assists people when migrating to a new version.
5451: a change which adds missing non-nullable fields to the
datasourcestable. Depending on the integrity of the data, manual intervention may be required.
5452: a change which adds missing non-nullable fields and uniqueness constraints to the
table_columnstables. Depending on the integrity of the data, manual intervention may be required.
fabmanagercommand line is deprecated since Flask-AppBuilder 2.0.0, use the new
flask fab <command>integrated with Flask cli.
SUPERSET_UPDATE_PERMSenvironment variable was replaced by
FAB_UPDATE_PERMSconfig boolean key. To disable automatic creation of permissions set
FAB_UPDATE_PERMS = Falseon config.
5453: a change which adds missing non-nullable fields and uniqueness constraints to the metrics and sql_metrics tables. Depending on the integrity of the data, manual intervention may be required.
npm run backend-syncis deprecated and no longer needed, will fail if called
- 5445: a change which prevents encoding of empty string from form data in the database. This involves a non-schema changing migration which does potentially impact a large number of records. Scheduled downtime may be advised.
If you use
Presto, we've moved some dependencies that were in the main package as optional now. To get these packages, run
pip install superset[presto]and/or
pip install superset[hive]as required.
Similarly, if you use Celery's
thrift-sasl, those dependencies have now been made optional in our package, meaning you may have to install them in your environment post 0.31.0
boto3 / botocore was removed from the dependency list. If you use s3 as a place to store your SQL Lab result set or Hive uploads, you may have to rely on an alternate requirements.txt file to install those dependencies.
From 0.31.0 onwards, we recommend not using the npm package
yarnin favor of good old
npm install. While yarn should still work just fine, you should probably align to guarantee builds similar to the ones we use in testing and across the community in general.
- 0.30.0 includes a db_migration that removes allow_run_sync. This may require downtime because during the migration if the db is migrated first, superset will get 500 errors when the code can't find the field (until the deploy finishes).
- India was removed from the "Country Map" visualization as the geojson file included in the package was very large
Support for Python 2 is deprecated, we only support >=3.6 from
Superset 0.28 deprecates the previous dashboard layout. While 0.27 offered a migration workflow to users and allowed them to validate and publish their migrated dashboards individually, 0.28 forces the migration of all dashboards through an automated db migration script. We do recommend that you take a backup prior to this migration.
Superset 0.28 deprecates the
mediancluster label aggregator for mapbox visualizations. This particular aggregation is not supported on mapbox visualizations going forward.
Superset 0.28 upgrades
>=0.3, which includes a backwards-incompatible change:
g.user.is_activeare now properties instead of methods.
- Superset 0.27 start to use nested layout for dashboard builder, which is not backward-compatible with earlier dashboard grid data. We provide migration script to automatically convert dashboard grid to nested layout data. To be safe, please take a database backup prior to this upgrade. It's the only way people could go back to a previous state.
- Superset 0.26.0 deprecates the
superset workerCLI, which is a simple wrapper around the
celery workercommand, forcing you into crafting your own native
celery workercommand. Your command should look something like
celery worker --app=superset.sql_lab:celery_app --pool=gevent -Ofair
Superset 0.25.0 contains a backwards incompatible changes. If you run a production system you should schedule downtime for this upgrade.
The PRs bellow have more information around the breaking changes:
- 4587 : a backward incompatible database migration that requires downtime. Once the db migration succeeds, the web server needs to be restarted with the new version. The previous version will fail
- 4565 : we've
changed the security model a bit where in the past you would have to
define your authentication scheme by inheriting from Flask
from flask_appbuilder.security.sqla.manager import SecurityManager, you now have to derive Superset's own derivative
superset.security.SupersetSecurityManager. This can provide you with more hooks to define your own logic and/or defer permissions to another system as needed. For all implementation, you simply have to import and derive
SupersetSecurityManagerin place of the
- 4835 :
setup.pynow only pins versions where required, giving you more latitude in using versions of libraries as needed. We do now provide a
requirements.txtwith pinned versions if you want to run the suggested versions that
Supersetbuilds and runs tests against. Simply
pip install -r requirements.txtin your build pipeline, likely prior to
pip install superset==0.25.0