How Apache Superset upgrades stay safe after go-live
Once an Apache Superset instance is live, every upgrade changes a system that people use to make decisions. The release cadence is steady: Apache Superset 6.0.0 was published on December 18, 2025, and 6.1.0 on May 13, 2026, according to PyPI. The GitHub releases page also lists 7.0.0rc2 as a pre-release dated October 16, 2026. Pre-releases are for testing, not for production, so the planning question is which stable line your organization will move to and when.
Four kinds of trigger create upgrade work. Security fixes are the most urgent, and they need a plan for the published CVEs that affect your version. A change to the Python runtime or to the metadata database is the second trigger. Superset documents PostgreSQL 10 to 17 and MySQL 5.7 and 8.x as supported metadata database versions, so confirm that your target release still supports your current database before you schedule anything. New features and end-of-support decisions complete the list. Each trigger should have a named owner and a written reason before work starts.
The safe sequence starts with the release notes. Read UPDATING.md for every version between your current release and the target, because breaking changes accumulate across skipped versions. Back up the metadata database and confirm that the backup restores. Then build a staging copy with production-like metadata, run superset db upgrade and superset init, and test. Check the SECRET_KEY configuration, config overrides, role mappings such as AUTH_ROLES_MAPPING, and the caching layer and Celery workers, since alerts, reports, async queries and thumbnails depend on them. Sample dashboards, charts and SQL Lab queries against each data source, and keep a rollback plan for the metadata database.
Teams with Python, Flask-AppBuilder and database administration skills often keep routine minor upgrades in-house, provided they have a staging environment and time for the checks above. Major version jumps and changes that touch several components at once, such as the metadata database, the worker tier and the deployment method, are commonly scoped to a partner. Deployment method matters. The Superset 6.1.0 documentation describes Helm chart installs, while current development documentation marks that chart as deprecated and points new deployments to the Apache Superset Kubernetes Operator, which is alpha with a v1alpha1 API that may change between releases. Plan extra testing if you run on Kubernetes.
When you buy support, ask what the agreement covers before you sign. Confirm which versions are in scope, whether security fixes are included, how upgrades are tested in staging, how backups are verified, and what happens if a release fails in production. Ask who tracks published CVEs and how quickly a finding is reviewed. DeployOpen offers ongoing support and upgrades as retainers, and larger upgrades are fixed-scope, with deliverables and timelines agreed in writing before work starts. Ask each provider to separate one-time upgrade work from recurring support fees in the quote.
What an Apache Superset upgrade and support engagement includes
An upgrade engagement is a sequence of checkable outputs, each one feeding the next: know what is running, decide what changes, rehearse it, cut over, verify, and keep a way back. The support agreement covers what happens between upgrades, and both are agreed in writing before work starts.
Current-state inventory
The inventory records the Superset version in use, how it is deployed, and the metadata database version, which must fall within the range the configuration documentation lists for PostgreSQL or MySQL. It also covers cache and Celery worker configuration, custom configuration overrides, and any custom code or plugins. Ask for this inventory to be produced first, because every later step depends on it.
Written upgrade plan
The plan sets the target release and the path to reach it, with a breaking-change review drawn from the project's UPDATING.md for every version crossed. Each breaking change is mapped to a yes, no or unknown finding against your configuration and custom code. Confirm that the plan names who approves the target version before any environment is touched.
Staging environment rehearsal
The upgrade is run first against a staging copy that matches production in version, metadata database, cache, workers and configuration. The rehearsal records the database migration commands, the superset init step, timings and any errors, so the production run repeats a tested sequence. Ask whether staging uses a copy of production metadata or a representative sample, and how that copy is anonymized.
Production cutover runbook
The runbook is a step-by-step document for the production window: the metadata database backup and its restore test, maintenance notice, stopping web, cache and worker processes, running the database upgrade, and bringing services back in order. It names the owner of each step and the go or no-go criteria. Confirm the window and the on-call contacts with your own change process before the cutover is scheduled.
Post-upgrade verification
Verification checks that dashboards render, datasets resolve to their data sources, and charts return results with the expected filters and row-level security applied. It also confirms that scheduled alerts and reports still fire and deliver, since these depend on the cache and worker components. Agree the list of critical dashboards and alerts in the plan so the check covers what your users depend on.
Rollback plan
The rollback plan defines how to return to the previous release if verification fails, and it depends on the metadata database backup taken before cutover. Schema changes are the hard part, so the plan should state whether the old version can run against the migrated database or whether a restore is required. Ask for the restore time to be measured in staging, not estimated.
Support agreement scope
The support agreement sets the response scope, the release tracking method for new Superset versions and security advisories, and the list of exclusions. Exclusions usually include custom visualization plugins, changes to source data systems and issues caused by changes made outside the agreed scope. Ask for response expectations to be written as specific commitments, and for the agreement to be reviewed when you change versions.
What drives the cost and duration of a Superset upgrade
This table lists the factors that change how much work an upgrade takes and how long it runs. Each row names a driver, explains why it matters and gives a step that keeps it manageable. Read it before requesting a quote, since each row maps to a question the partner should answer in writing. The main takeaway is that customization, the number of environments and the number of assets to verify usually drive effort more than the version gap alone.
| Driver | Why it matters | How to keep it down |
|---|---|---|
| Major versions crossed and UPDATING.md changes | Each major release can change defaults, dependencies and configuration keys. Breaking changes that touch your settings add review and rework. | Read every UPDATING.md entry between your current and target versions. Upgrade in steps and log which entries apply. |
| Custom security managers, plugins and feature flags | Custom code and flags depend on internal interfaces that can change. Each item needs retesting and sometimes a rewrite. | Keep customizations minimal and documented. Inventory every flag and plugin before the upgrade starts. |
| Metadata database version and its own upgrade | The metadata database must sit within the supported version range. An out-of-range version may need its own upgrade first. | Confirm the version against the configuration documentation. Back up the database and rehearse the migration in staging. |
| Cache and Celery worker topology | Alerts, reports, async queries and thumbnails depend on the caching layer and workers. Each component must be tested and redeployed. | Standardize the topology across environments. Document queue names, broker settings and restart order. |
| Data source connections and drivers | Each database connection may need a driver version change. Drivers can break queries or authentication after an upgrade. | List every connection and driver version. Run a query test against each source in staging. |
| Number of environments | Development, staging, production and disaster recovery each need the upgrade applied and verified. Drift between them adds effort. | Keep configuration in version control. Promote the same build through each environment in order. |
| Dashboards and datasets needing post-upgrade checks | Charts can render differently or fail after a change to the query engine or datasets. Checks scale with the number of assets reviewed. | Prioritize business-critical dashboards. Automate render checks where possible, then review exceptions by hand. |
| Compliance evidence required | Assessors may ask for change records, test results, backup proof and approvals. Missing records add work after the upgrade. | Agree the evidence list before work starts. Capture tickets, test outputs and rollback records as the work proceeds. |
| Deployment method | Each method has its own upgrade steps. The Helm chart is marked deprecated for new deployments and the operator is in alpha. | Confirm the method in the current documentation. Record the chart or operator version and its upgrade path before planning. |
Apache Superset upgrade phases and the output of each
This sequence moves a Superset upgrade from an inventory of what is running to a documented, verified production change and a handover that sets up ongoing support. Each phase closes with a named artifact, so your team can see what was checked before anything changes in production.
Inventory the current installation
DeployOpen records the running Superset version, the install method (PyPI, Docker, Kubernetes chart or operator), the metadata database engine and version, the caching layer and Celery workers, configured data source connections, authentication settings and any custom code or configuration overrides. The output is an inventory report. The step is done when your team has reviewed and signed off the report, so every component that the upgrade touches is named before planning starts. Confirm the supported metadata database versions against the current configuration documentation during this phase.
Review breaking changes between versions
DeployOpen reads the release notes and the UPDATING.md file for every version between your current release and the target release, then matches each breaking change against your inventory. Items that touch your database engine, authentication, feature flags, configuration keys, custom plugins or the SECRET_KEY handling are flagged. The output is a change list that states each affected item, its owner on your side and the required action, or a note that no action applies. The step is done when the change list has been reviewed with your application owner and any open questions are assigned.
Rehearse the upgrade in staging
DeployOpen builds a staging copy of the installation from the inventory, restores a recent copy of the metadata database into it and runs the upgrade with the documented sequence: a metadata database backup, superset db upgrade, then superset init. Before the rehearsal, the team also tests that the backup can be restored into a separate database and that the restored copy starts. The output is a rehearsal log with commands run, errors seen, timings observed in your environment and the fixes applied. The step is done when the rehearsal completes cleanly at least once and every fix is written back into the change list.
Write the cutover runbook
Using the rehearsal log as the basis, DeployOpen writes a step-by-step cutover runbook for the production window. It lists the pre-change backup, the order of web, worker and beat restarts, the database migration and init commands, the rollback path (restoring the backup and returning to the previous version), the owner for each action and the go or no-go checks. The output is the cutover runbook. The step is done when your change board or operations lead has approved it. Ask for the phase schedule in the written scope so the window size and the approval dates are agreed in writing.
Run the production upgrade window
During the agreed window, DeployOpen takes the metadata database backup, confirms it is readable, stops or drains the workers as the runbook directs, runs superset db upgrade and superset init, restarts the application and worker processes and records each command with its result. If a check fails, the team follows the rollback path in the runbook rather than improvising. The output is a completed change record that shows what ran, when and with what result. The step is done when the application starts on the new version and the runbook's go checks pass.
Verify the upgraded installation
DeployOpen works through a verification checklist covering login through each configured authentication method, role and dataset access for sample users, data source connections, dashboards and charts that depend on the changed items in the change list, SQL Lab, scheduled alerts and reports, async queries and thumbnails where those features are in use. Results are compared with the pre-upgrade inventory. The output is a verification checklist with pass, fail or accepted-deviation entries and an owner for each. The step is done when your business owners have confirmed their dashboards load as expected.
Hand over and start support
DeployOpen delivers a handover document covering the final versions and configuration, the backup and restore procedure, the rehearsal and cutover records, the open items, the upgrade process for the next release, and the contacts for your team and ours. If a support agreement is in place, its scope, response expectations and the upgrade cadence it covers are confirmed here. The output is the handover document and a signed acceptance by your owner. Ask for the support terms in writing, since a support agreement is scoped separately from the one-time upgrade.
Apache Superset upgrade steps and staging tests that prevent surprises
The safest upgrade path for Superset follows the documented sequence: back up the metadata database, run superset db upgrade and superset init, and test the new version in staging before anything changes in production. Each step has a purpose. The backup is your only reliable way back if a migration fails partway through, because the metadata database holds dashboards, charts, datasets, users, roles and saved queries. The migration command updates that schema, and superset init refreshes default roles and permissions. Staging is where you find out whether your particular combination of data sources, roles and scheduled jobs still works. Before each upgrade, read UPDATING.md in the release for breaking changes between your current version and the target version, and note every item that touches your configuration, custom security manager or database drivers.
Confirm the metadata database version first. Superset publishes the metadata database versions it supports: PostgreSQL 10 to 17 and MySQL 5.7 and 8.x. Check the exact version of your production database against that range before you schedule the upgrade, and make sure staging runs the same engine and version. If production is outside the range, the upgrade becomes a database project as well as an application project, and that work should be scoped and estimated separately. Also confirm that your environment is not running the SQLite default or the Docker Compose PostgreSQL container for production, since the architecture documentation does not recommend either. A version mismatch found during staging costs a few hours. The same mismatch found during a production migration can cost a rollback window.
Treat the secret key as part of the upgrade test. Superset requires a user-specified SECRET_KEY to start, a requirement introduced in version 2.1.0, and it supports rotation through PREVIOUS_SECRET_KEY. Encrypted values stored in the metadata database, such as data source credentials, depend on that key. In staging, use a copy of the production metadata database with the production key configured, then confirm that existing user sessions remain valid, that saved database connections still connect, and that OAuth or LDAP logins still work. If you plan to rotate the key during the same change window, test the rotation as its own step with PREVIOUS_SECRET_KEY set, and confirm the rotation procedure before you touch production. Record which key values are in each environment, and keep them in your secrets manager, not in the configuration file.
Include the background components in the staging test. Scheduled alerts and reports, async queries and dashboard thumbnails depend on the caching layer and the Celery worker and beat processes, according to the architecture documentation. Basic dashboard browsing can pass staging while these features fail after go-live, because the workers may run an older image, the cache may hold stale state, or the beat schedule may not restart cleanly. Build a short test list: trigger one alert and one report to a test recipient, run an async query from SQL Lab and from a chart, load a dashboard that generates thumbnails, and confirm the worker logs show successful task completion. Run these checks after the workers have restarted on the new version, not before.
Plan the support questions before you need them. Ask your partner, or your internal team, to name who owns the rollback decision, how long the backup takes to restore in staging, and which release notes were reviewed. Confirm whether a support agreement covers upgrade execution, staging validation and post-upgrade monitoring, or only advice. Ask for the written upgrade checklist as a deliverable. Note that Superset 6.1.0 and later are published on PyPI, and that a 7.0.0 release candidate is listed on GitHub, so confirm which version your plan targets and whether it is a pre-release before scheduling production work. The version you test in staging should be the version you deploy.
What usually goes wrong in Superset upgrades and how to prevent it
Most Superset upgrade problems are not caused by the new release itself. They come from skipped release notes, untested backups, drift between environments and ownership gaps that build up after go-live. Each card below names one failure pattern and the check that prevents it.
Skipping the breaking changes review
Teams often run the upgrade commands without reading UPDATING.md for every version they cross. A configuration key may be renamed, removed or change its default, and the first sign is a failed start or a changed behavior in production. Before any upgrade, read every entry between your current and target versions, list each configuration key you set, and confirm each one still exists and means the same thing in the target release.
Metadata database outside the supported range
The metadata database holds dashboards, datasets, users and roles, so its version matters as much as Superset's. The configuration documentation lists supported PostgreSQL versions 10 to 17 and MySQL 5.7 and 8.x. Check your current database version against the target release's requirements, and plan a database upgrade as its own step with its own test if you are outside that range. Confirm the supported list for your target version with the project before you start.
Backups that were never restored
A metadata backup that has never been restored is an assumption, not a recovery plan. Restore the latest backup into a separate environment, run the upgrade there, and open a sample of dashboards, charts and alerts to confirm they load and query correctly. Record how long the restore took and who ran it, so the production window is based on evidence. Keep the secret key used by the instance with the backup, because encrypted connection settings depend on it.
Custom code that breaks on a new release
Custom security managers, custom visualization plugins, overridden templates and patched configuration files often depend on internal Superset interfaces that change between releases. These failures appear after the upgrade, often in login or permission checks, which makes them urgent. Inventory every custom file, note which Superset module it imports or extends, and run the test suite or a login and permission test pass against the target release before you schedule the production change.
Staging that differs from production
A staging environment that lacks the same database drivers, Celery workers, Redis cache or data source connections will pass tests that production later fails. Compare the installed driver list, worker and beat processes, cache configuration and network access to each data source between the two environments. Differences in any of these should be closed or recorded as a known risk before the upgrade, not discovered during it.
Alerts and reports failing silently
Alerts, scheduled reports, async queries and dashboard thumbnails depend on the worker and caching components, not only the web application. If workers keep running the old code after the web tier is upgraded, scheduled jobs can fail without any visible error on the dashboard. After each upgrade, restart or redeploy workers and beat, then trigger a test alert and a test report and confirm each one is delivered.
Deployment method changes mid-life
On Kubernetes, the official Helm chart is marked deprecated in the current development documentation, which points new deployments to the alpha Apache Superset Kubernetes Operator. Upgrading Superset while also changing how it is deployed doubles the risk, and the operator's custom resource schemas may change between releases. Decide the deployment method as a separate project with its own staging run, and do not combine it with a version jump.
Ownership lost after the team moves on
When the engineer who built the deployment leaves, the upgrade runbook, secret key location, backup schedule and access to data source credentials often leave with them. Keep a written runbook that names the owner for each component, where secrets are stored, how backups are verified, and who receives release notices. Confirm that at least two people can run an upgrade without the original builder, and that the support agreement names who is responsible for each step.
Recurring costs after go-live for an Apache Superset deployment
This table lists the cost components that continue after a Superset deployment goes live and says whether each is one-time or recurring. Apache Superset is released under the Apache License 2.0 and the project has no paid edition, so the recurring spend is infrastructure, staff time and any support agreement. Use the last column to build the questions you send to each provider or partner.
| Cost component | What it covers | One-time or recurring | What to ask for in a quote |
|---|---|---|---|
| Application infrastructure | Compute and networking for the Flask and React web application, sized to concurrent users and dashboard load in your environment | Recurring, with a one-time setup cost for the initial build | Node count, sizing assumptions, scaling rules and who patches the host operating system |
| Metadata database | Hosted or self-managed PostgreSQL or MySQL holding dashboards, datasets, users and roles, with backups and retention | Recurring, with one-time migration and restore testing | Supported engine version, backup frequency, restore test scope and who runs major version upgrades |
| Cache and workers | Caching layer, usually Redis, plus Celery worker and beat processes. These are required for alerts and reports, async queries and dashboard thumbnails | Recurring, scaled with report schedules and query volume | Which features are enabled, worker count, queue monitoring and who responds when a scheduled report fails |
| Internal staff time for release tracking and testing | Reviewing new Superset releases, reading UPDATING.md for breaking changes, and running upgrades in staging before production | Recurring, tied to each release cycle | Named owner, expected hours per release cycle as the partner or team estimates them, and which tasks sit with your staff |
| Outside support retainer or per-upgrade scope | Ongoing support, upgrade execution, or a fixed-scope upgrade project, depending on the agreement | Recurring for a retainer, one-time for each fixed-scope upgrade | Response targets stated in writing, included upgrades per term, out-of-scope rates and what happens when a release changes the Kubernetes deployment method |
| Testing and security review of new releases | Regression testing of dashboards, datasets and permissions, plus review of security advisories and configuration changes such as SECRET_KEY handling | Recurring, with a one-time baseline test suite | Test cases covered, who signs off, evidence delivered and how advisories are tracked |
| Training after staff changes | Onboarding new administrators and analysts to the upgrade runbook, role model and backup procedure | One-time per staff change, recurring over the life of the platform | Training format, materials delivered, whether runbooks are updated and the cost per session |
How Superset upgrades differ by starting point
A minor version move on a manual or Docker install is the smallest change, but it still follows the full upgrade sequence. The work is mostly about confirming that the metadata database, configuration and workers all move together. Teams on Docker should also confirm that the image they pull is the same version they tested in staging, because a floating tag can change between tests and the production pull.
- Read UPDATING.md for every release between your current version and the target, even when the jump looks small.
- Back up the metadata database and copy your configuration file and environment variables before changing anything.
- Run superset db upgrade and superset init in that order, then restart web nodes and Celery workers.
- Confirm that SECRET_KEY is still set and that the running instance accepts it.
- Check that alerts, reports, async queries and dashboard thumbnails still work, since they depend on the caching layer and workers.
Before you schedule the change, confirm that a staging copy restored from a recent metadata backup completes the same steps without errors.
A major version jump needs a breaking-change review across every release in between, not only the target. Changes that look isolated in one release can affect custom code, configuration or authentication settings that were set up years earlier. The review determines whether you upgrade in one step or stage the move through intermediate releases that pass your own tests.
- Build a list of breaking changes by reading UPDATING.md for each intermediate release and the target.
- Inventory custom code, feature flags, configuration overrides and any custom security manager, since these may depend on internals that changed.
- Check that the metadata database version falls within the supported range for the target release. The configuration documentation lists PostgreSQL 10 to 17 and MySQL 5.7 and 8.x.
- Decide whether to upgrade in one step or in stages, and record the criteria for each stage.
- Plan rollback by keeping the pre-upgrade metadata backup and the previous container image or package.
Confirm the target release notes and the database support matrix with the Superset project before the review is signed off, and keep the signed review with the change record.
The Superset 6.1.0 documentation describes Kubernetes installs with the official Helm chart, but the current development documentation marks that chart as deprecated in favor of the Apache Superset Kubernetes Operator. The operator is in alpha, and its v1alpha1 API may change between releases. The upgrade decision therefore includes a platform decision: which deployment method you standardize on, and how much schema change you accept at each upgrade.
- Decide whether the existing Helm release stays, moves to the operator, or waits, and record the reason and the owner.
- If you stay on the chart, ask the project how long it will be supported and plan for the deprecation path.
- If you adopt the operator, pin its version and review custom resource schema changes before each upgrade, because v1alpha1 may change.
- Keep image tags, values files and secrets under version control so each rollout can be reproduced.
- Test rolling updates with the same Celery worker and beat setup used in production.
Ask your platform team to confirm the chart and operator status in the current documentation on the day you make the decision, because both change over time.
In an air-gapped or restricted network, the upgrade work starts well before the change window. Python packages, container images, database drivers and any base images must be mirrored into the internal network, and each mirror must match the version under review. Staging needs the same network restrictions as production, otherwise a test can pass in a connected environment and fail where the instance actually runs.
- Mirror the Superset package or image for the target release, along with its Python dependencies and the database drivers for each connected source.
- Keep a dependency manifest for each release so the mirror can be rebuilt and audited later.
- Confirm that the metadata database, Redis and worker images are also mirrored and within their supported versions.
- Plan how release notes and UPDATING.md will be reviewed offline, and who approves each transfer across the boundary.
- Verify any checksums or signatures recorded by your change process before installation, following your organization's policy.
Confirm the transfer path and approval steps with your security team early, because these often set the lead time more than the upgrade steps do.
An instance that has gone unpatched for a long time has the widest gap between its current state and the target. A catch-up plan works best as a documented sequence of steps with a checkpoint after each one. Older instances often carry manual changes, outdated dependencies and configuration that relied on settings that have since changed, so the first task is to find out what is actually running.
- Record the current Superset version, metadata database version, installed packages and any manual changes made since installation.
- Map every release between the current version and the target, and mark which ones carry breaking changes or security fixes.
- Check SECRET_KEY, authentication settings and role mappings, since older configuration may depend on settings that changed.
- Define checkpoints, such as an intermediate release that passes staging, with an owner and sign-off for each.
- Review published security advisories for the installed version and decide whether containment is needed while the catch-up runs.
Ask for a written inventory of the current instance before agreeing on the plan, because the inventory determines how many checkpoints the work needs.
What your team must provide before an Apache Superset upgrade starts
Before any upgrade work begins, your team needs to supply a staging environment that mirrors production closely enough to prove the upgrade. In practice that means the same Superset version as production today, the same metadata database engine and version, the same caching layer and worker topology if you use alerts, reports, async queries or dashboard thumbnails, and a copy of production data or a representative subset. Confirm the metadata database version against the supported range in the Superset configuration documentation (PostgreSQL 10 to 17, MySQL 5.7 and 8.x) before you sign off on staging. If staging runs a different database version from production, the test results will not tell you much about production.
Next, your team must provide a current backup of the metadata database, or agree that DeployOpen takes one as the first step with a restore test. The upgrade documentation calls for a metadata database backup before running superset db upgrade and superset init, and that backup is the only fast route back if a migration fails partway. Also provide the deployment files and configuration: the superset_config.py file, environment variables, container images or Helm values, and especially any custom security manager, feature flags, configuration overrides and custom visualization plugins. Those customizations are where most upgrade surprises appear, so the inventory must be complete. Confirm that the SECRET_KEY is stored in your secrets manager and not only in a config file, because the upgrade process must not change it by accident.
Your team should also supply a list of data source connections with the database driver versions in use, and the credentials owner for each. Some connectors change behavior between releases, and a connector that works in staging may fail against a production source with a different driver. On the business side, name an owner for each dashboard group who can sign off that charts still produce the expected numbers after the upgrade. Without named owners, staging tests can prove that pages load but not that the figures are correct, and that gap usually shows up after cutover. Record who in your organization can be reached during the change window to resolve questions quickly.
Three operational decisions must be made and written down before work starts. First, agree a change window with enough room to roll back, including the time to restore the metadata database if needed. Second, decide who approves production cutover, and who can stop it. Third, decide whether you want support after the upgrade, and what response scope you expect: business hours or extended coverage, which components are covered (the application, the cache and workers, the database and the reverse proxy), and whether DeployOpen should watch for breaking changes in later releases. These are commercial and operational choices, and they change what should appear in the written scope and quote. Ask for the support terms in writing and confirm them against your own service expectations before the window is booked.
Questions buyers ask about Apache Superset upgrades and support
Can our own team upgrade Apache Superset without an outside partner?
Yes, an internal team can run upgrades if it has the right skills. Superset is licensed under Apache-2.0 and the project has no paid edition, so the cost is staff time and infrastructure. The skills needed are Python and Flask-AppBuilder for reading the code and configuration overrides, PostgreSQL or MySQL administration for taking a metadata database backup and running the migrations, and container or Kubernetes operations for the web nodes, cache and Celery workers. The team also has to read UPDATING.md for every version between the current and target release and test in staging first. Teams often find the rollback plan and the staging comparison of dashboards and datasets the hardest parts to staff.
What drives the cost of a single Superset upgrade?
The main driver is how far the installation has to move. A jump across several releases means more breaking changes in UPDATING.md to review and more configuration changes to apply. Other drivers include the metadata database type and version, the number of custom configuration overrides, custom visualization plugins or security managers, the SSO setup, and whether alerts, reports and async queries depend on the cache and worker components. Cost also rises with the number of environments that need a staging copy and the depth of post-upgrade testing on dashboards and data source connections. Whoever performs the work, internal staff time or a fixed-scope engagement from DeployOpen, is paid for these same steps. Ask any quote to list each phase, the staging environment, the backup and rollback steps, and the post-upgrade checks as separate line items.
How long does an Apache Superset upgrade take?
Duration depends on the same factors that drive cost: the version gap, the breaking changes that apply, the size and state of the metadata database, the number of customizations, and the test coverage the business requires. A small installation with few customizations and a clean staging environment moves faster than one with custom plugins, custom security logic and many dashboards owned by different teams. Time also depends on approvals, change windows and how quickly the client can review test results. DeployOpen does not publish a duration for upgrades. Ask for a phase schedule that shows the assessment, staging build, breaking-change review, metadata migration rehearsal, production cutover, verification and handover, along with the client decisions each phase depends on.
What does our team need to provide for a Superset upgrade?
The client provides access, information and decisions. Typical items include access to the current environment and its deployment manifests, a recent metadata database backup and permission to take a fresh one, and a staging environment that matches production as closely as possible. The client should also supply the list of data source connections and how their credentials are stored, the inventory of configuration overrides and custom code, and the SECRET_KEY handling process. Business owners need to name the people who will review key dashboards and sign off after testing. Finally, the client must confirm change windows and the rollback criteria. Ask the proposal to list these inputs and the person responsible for each one, so the schedule does not depend on information that arrives late.
How does a Superset support agreement differ from a one-off upgrade?
A one-off upgrade is a fixed-scope piece of work with defined deliverables, a start and an end. A support agreement is an ongoing arrangement that covers recurring work after go-live. DeployOpen offers ongoing support, upgrades and continuous testing as retainers. Depending on the agreement, that can include tracking new Superset releases, planning and rehearsing upgrades, applying security updates, reviewing breaking changes and responding to operational issues. Because the project publishes new versions on a regular basis, the retainer model suits teams that want upgrades planned instead of reactive. Confirm in the written agreement which activities are included, how requests are prioritized, and what response commitments apply. DeployOpen does not offer guarantees beyond what the signed scope states.
Can Apache Superset be upgraded without downtime?
Whether an upgrade can avoid downtime depends on the deployment topology, so it needs confirmation against the actual design. Stateless web nodes behind a load balancer can often be updated in turns, while a single node sharing one database usually needs an outage window. The metadata database migrations run against a shared database, so the sequence of web, worker and beat updates has to match the new code. Cache and Celery workers must run versions that work with the new release, and any alerts or reports scheduled during the cutover need a plan. Ask the proposal to describe the topology, the cutover order, the expected user impact and the rollback path. Treat any claim of zero downtime as something to verify in staging before it is accepted.
Can DeployOpen take over an existing Apache Superset installation?
Yes, DeployOpen can take over an existing installation inside the client's own infrastructure, whether that is a cloud account, a data center or an air-gapped network. The first step is an assessment. It confirms the current Superset version, the metadata database type and version against the supported range (PostgreSQL 10 to 17 or MySQL 5.7 and 8.x, per the configuration documentation), how SECRET_KEY is set and rotated, the authentication setup, the cache and worker components, and every customization. The assessment results become the basis of the written scope, deliverables and timeline. Handover then covers documentation, runbooks and the upgrade procedure. Confirm the access and responsibilities in writing before any change is made to production.
Does the Helm chart or Kubernetes operator choice change how we upgrade?
Yes. The 6.1.0 documentation describes Kubernetes installs with the official Helm chart, but the current development documentation marks that chart as deprecated and points new deployments to the Apache Superset Kubernetes Operator. The operator is in alpha, uses a v1alpha1 API, and its custom resource schemas may change between releases. An upgrade plan therefore has to include manifest or custom resource changes, not just the application image. Teams already on the chart should plan a migration path and check the current documentation before choosing. Who owns the manifests, how they are versioned in Git, and how a rollback restores the previous resource definitions all depend on that choice. Confirm the current status of both options before the upgrade plan is written.
How DeployOpen scopes, delivers and supports Apache Superset upgrades
DeployOpen plans each Apache Superset upgrade from the release notes and the breaking changes in UPDATING.md, then rehearses it on a staging copy before anything touches production. Engagements are fixed-scope, and ongoing support is available as a retainer once the upgrade is complete.
How we scope
- The written scope names the current and target Superset versions and the release notes reviewed for each step.
- We inventory the metadata database version, cache and Celery workers, custom configuration and any plugins that must survive the upgrade.
- The scope states which environments are in play, who approves production changes, and what counts as a completed upgrade.
How we build
- We take and verify a metadata database backup before any migration command runs against the environment.
- Upgrades are rehearsed in staging with superset db upgrade and superset init, then checked against the UPDATING.md breaking changes.
- Configuration changes, such as SECRET_KEY handling and feature settings, are version-controlled so each step can be reviewed and repeated.
How we hand over
- The handover includes a runbook covering the exact upgrade sequence, rollback steps and post-upgrade verification checks.
- Documentation records every breaking change that affected your dashboards, datasets, roles or custom code, with the decision taken for each.
- Your team receives a walkthrough and a test list it can rerun for the next Superset release.
How we support
- A support retainer covers planned reviews of new Superset releases and the upgrade work that follows from them.
- Retainer scope, response expectations and any service levels are written into the agreement, so confirm them before signing.
- Pre-release versions are assessed in staging only, so production upgrades follow the stable releases your scope names.

