db_migrator
This script was only use for 0.36 release cycle!
Starting with 0.36 the InfluxDB component has a new schema to store values in the InfluxDB databases.
- There will no longer be any tags/fields named
time
. - All numeric fields (int/float/bool) will be stored as float inside InfluxDB database.
- All string fields corresponding to state attributes will be renamed as
FIELDNAME_str
, whereFIELDNAME
is the state attribute, to avoid type conflicts. - All string fields corresponding to a state will be renamed as
state
(former value). - Fields named
value
will always be stored as float. - Fields named
state
will always be stored as string.
Migration script
If you need to migrate your database, you may require to run the influxdb_migrator
script. Run the script after upgrade to 0.36 but before the first regular start of hass
version 0.36.
These are the steps the script will perform:
- Create a new database (called
DBNAME__old
) to store old data. - Copy data from
DBNAME
database toDBNAME__old
database. - Empty
DBNAME
database (usingdrop
thencreate
).DBNAME
database is now considered as the new database. - For each measurement of
DBNAME__old
database: - Read all points from the current measurement (in groups of 1000 points by default) and convert them.
- Send group of points to
DBNAME
database. - Delete the
DBNAME__old
database if needed.
Example to run the script:
$ hass --script influxdb_migrator \
-H IP_INFLUXDB_HOST -u INFLUXDB_USERNAME -p INFLUXDB_PASSWORD \
-d INFLUXDB_DB_NAME
Script arguments:
required arguments:
-d dbname, --dbname dbname InfluxDB database name
optional arguments:
-h, --help show this help message and exit
-H host, --host host InfluxDB host address
-P port, --port port InfluxDB host port
-u username, --username username
InfluxDB username
-p password, --password password
InfluxDB password
-s step, --step step How many points to migrate at the same time
-o override_measurement, --override-measurement override_measurement
Store all your points in the same measurement
-D, --delete Delete old database
- If you run the script with only the
-h
option, you will get a help printout with a short explanation of the different options. - The host option defaults to
'127.0.0.1'
. - The port option defaults to
8086
. - You should be able to omit username and password if InfluxDB authentication is disabled, which it is by default.
- The step option defaults to
1000
.