mirror of
https://github.com/netfun2000/hipudding-teslamate.git
synced 2026-02-27 09:44:28 +08:00
115 lines
3.2 KiB
Plaintext
115 lines
3.2 KiB
Plaintext
---
|
|
id: upgrading
|
|
title: Upgrading to a new version
|
|
sidebar_label: Upgrading to a new version
|
|
---
|
|
|
|
:::info
|
|
Check out the [release notes](https://github.com/teslamate-org/teslamate/releases) before upgrading!
|
|
:::
|
|
|
|
:::note
|
|
Create a [backup](maintenance/backup_restore.md) before updating.
|
|
If you are using `docker-compose`, you are using Docker Compose v1, which has been deprecated. Docker Compose commands refer to Docker Compose v2. Consider upgrading your docker setup, see [Migrate to Compose V2](https://docs.docker.com/compose/migrate/)
|
|
:::
|
|
|
|
import Tabs from "@theme/Tabs";
|
|
import TabItem from "@theme/TabItem";
|
|
|
|
<Tabs
|
|
defaultValue="docker"
|
|
values={[
|
|
{ label: 'Docker', value: 'docker', },
|
|
{ label: 'Manual install (Debian)', value: 'manual_debian', },
|
|
{ label: 'Manual install (FreeBSD)', value: 'manual_freebsd', },
|
|
]}>
|
|
<TabItem value="docker">
|
|
|
|
Within the directory where the YML file is located, pull the new images:
|
|
|
|
```bash
|
|
docker compose pull
|
|
```
|
|
|
|
and restart the stack with `docker compose up`. To run the containers in the background add the `-d` flag:
|
|
|
|
```bash
|
|
docker compose up -d
|
|
```
|
|
|
|
</TabItem>
|
|
<TabItem value="manual_debian">
|
|
|
|
1. Pull the new changes from the git repository, checkout the new version and then build the new release:
|
|
|
|
```bash
|
|
git pull
|
|
git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
|
|
|
|
mix deps.get --only prod
|
|
npm install --prefix ./assets && npm run deploy --prefix ./assets
|
|
|
|
rm -rf _build
|
|
MIX_ENV=prod mix do phx.digest, release --overwrite
|
|
```
|
|
|
|
2. Most upgrades requires to run new database migrations. If so continue with the following command:
|
|
|
|
```bash
|
|
_build/prod/rel/teslamate/bin/teslamate eval "TeslaMate.Release.migrate"
|
|
```
|
|
|
|
Note, you may need to include environment variables when running this step:
|
|
|
|
```bash
|
|
DATABASE_USER=teslamate DATABASE_PASS=super_secret_password DATABASE_NAME=teslamate DATABASE_HOST=localhost MQTT_HOST=your_MQTT_host(HomeAssistant in my case) _build/prod/rel/teslamate/bin/teslamate eval "TeslaMate.Release.migrate"
|
|
```
|
|
|
|
3. Finally, re-import the Grafana dashboards:
|
|
|
|
```bash
|
|
LOGIN="user:pass" ./grafana/dashboards.sh restore
|
|
```
|
|
|
|
</TabItem>
|
|
<TabItem value="manual_freebsd">
|
|
|
|
1. Pull the new changes from the git repository, checkout the new version and then build the new release:
|
|
|
|
```bash
|
|
bash
|
|
|
|
git pull
|
|
git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
|
|
|
|
mix deps.get --only prod
|
|
npm install --prefix ./assets && npm run deploy --prefix ./assets
|
|
|
|
rm -rf _build
|
|
export MIX_ENV=prod
|
|
mix do phx.digest, release --overwrite
|
|
```
|
|
|
|
2. Most upgrades requires to run new database migrations. If so continue with the following command:
|
|
|
|
```bash
|
|
_build/prod/rel/teslamate/bin/teslamate eval "TeslaMate.Release.migrate"
|
|
```
|
|
|
|
Note: you may need to include environment variables as part of this step:
|
|
|
|
```bash
|
|
DATABASE_USER=teslamate DATABASE_PASS=super_secret_password DATABASE_NAME=teslamate DATABASE_HOST=localhost MQTT_HOST=your_MQTT_host(HomeAssistant in my case) _build/prod/rel/teslamate/bin/teslamate eval "TeslaMate.Release.migrate"
|
|
```
|
|
|
|
3. Finally, re-import the Grafana dashboards:
|
|
|
|
```bash
|
|
bash
|
|
export LOGIN="user:pass"
|
|
./grafana/dashboards.sh restore
|
|
```
|
|
|
|
</TabItem>
|
|
</Tabs>
|