Stand with Ukraine flag
Pricing Try it now
Community Edition
Getting Started Documentation Devices Library Guides
Architecture API FAQ
On this page

ThingsBoard CE v3.0.x upgrade instructions for Docker

Upgrading ThingsBoard CE to 3.0.1

NOTE: These upgrade steps are applicable for ThingsBoard version 3.0. In order to upgrade to 3.0.1 you need to upgrade to 3.0CE first.

Doc info icon

Important note before upgrading to ThingsBoard 3.0

  • ThingsBoard UI was rewritten from AngularJS 1.5.8 to use Angular 9.
    • What does it mean?
      • Generally speaking, it means: state of the art application, easier development of front-end elements, performance improvements and more flexibility with UI customizations.
    • How to upgrade?
      • You are safe to upgrade if you do NOT use custom widgets or custom actions in the dashboards.
      • New JS framework may not support your current code — custom widgets and custom actions, so they need to be refactored a bit. Thus we encourage you to test your customizations using our cloud environments or your dev instances.
  • Migration from pure Cassandra to Hybrid DB Approach
    • We still support Cassandra for storing telemetry data but not the entities like devices, customers, tenants, etc.
    • What does it mean?
      • This will simplify maintenance and future improvements that will enable advanced search capabilities in v3.1.
    • How to upgrade?
      • If you are using pure PostgreSQL setup or PostgreSQL (for entities) + Cassandra (for telemetry), you are not affected.
      • If you are using pure Cassandra - the upgrade procedure is automatic but takes some time. The downtime depends on the number of devices, attributes, alarms and relations. If you have less than 10 million of those entities the upgrade should take a few minutes and depends on the database performance.

ThingsBoard image download

Download ThingsBoard Docker image:

1
docker pull thingsboard/tb-postgres:3.0.1

ThingsBoard service upgrade

  • Stop ThingsBoard mytb container if it is running.
1
docker compose stop mytb
Doc info icon

If you still rely on Docker Compose as docker-compose (with a hyphen) execute next command:
docker-compose stop mytb

  • Update docker-compose.yml
1
2
3
4
< . . . >
  mytbce:
    image: "thingsboard/tb-postgres:3.0.1"
< . . . >
  • Change upgradeversion variable:
1
echo '3.0.0' | sudo tee ~/.mytb-data/.upgradeversion
  • Execute the following commands to upgrade ThingsBoard to the new version:
1
docker run -it -v ~/.mytb-data:/data --rm thingsboard/tb-postgres:3.0.1 upgrade-tb.sh
  • Start ThingsBoard:
1
docker compose up -d
Doc info icon

If you still rely on Docker Compose as docker-compose (with a hyphen) execute next command:
docker-compose up -d

Upgrading ThingsBoard CE to 3.0

ThingsBoard image download

Download ThingsBoard Docker image:

1
docker pull thingsboard/tb-postgres:3.0.0

ThingsBoard service upgrade

  • Stop ThingsBoard mytb container if it is running.
1
docker compose stop mytb
Doc info icon

If you still rely on Docker Compose as docker-compose (with a hyphen) execute next command:
docker-compose stop mytb

  • Update docker-compose.yml
1
2
3
4
< . . . >
  mytbce:
    image: "thingsboard/tb-postgres:3.0.0"
< . . . >
  • Change upgradeversion variable:
1
echo '2.5.0' | sudo tee ~/.mytb-data/.upgradeversion
  • Execute the following commands to upgrade ThingsBoard to the new version:
1
docker run -it -v ~/.mytb-data:/data --rm thingsboard/tb-postgres:3.0.0 upgrade-tb.sh
  • Start ThingsBoard:
1
docker compose up -d
Doc info icon

If you still rely on Docker Compose as docker-compose (with a hyphen) execute next command:
docker-compose up -d

Next steps