Software > WeeWX
Tema para especialistas en BBDD weewx
jmviper:
Hola JosMar
Veamos... pon la BBDD antigua en /var/lib/weewx con otro nombre que no sea weewx.sdb y sitúate en ese directorio
Detén weewx y haz copia de seguridad de las dos BBDD que tienes a otro directorio y ejecuta estos comandos:
sudo sqlite3 basededatos1.sdb .dump > temporal.sdb
sudo sqlite3 basededatos2.sdb .dump >> temporal.sdb
sudo sqlite3 weewx.sdb .dump < temporal.sdb
sudo rm temporal.sdb
Pon en marcha weewx a ver cómo va.
basededatos1.sdb y basededatos2.sdb serán las BBDD a unir
Tardará su tiempo en cada operación y puede que dé errores al unirlas.
Lo importante es hacer copia de seguridad de ambas por si saliera mal la operación.
jmviper:
He modificado el mensaje anterior ya que había puesto las BBDD con extensión .sql en vez de extensión .sdb
jantoni:
Ummmmm........
No sé si este método funcionará. El comando .dump, al menos lo que yo recuerdo vagamente, vuelca la estructura de una base de datos en un fichero de texto, pero no recuerdo que sirva para insertar datos en una tabla o base da datos.
Tendría que revisar la documentación.
El modo más seguro es el de “insert into tabladedestino select from tabladeorigen”
No obstante, aunque funcione un método u otro, preveo muchos dolores de cabeza con las inconsistencias.
jantoni:
De todos modos.....la premisa es....
Tocad la base de datos lo menos posible.
De ese modo weewx lleva funcionando 6 años en mi vieja raspberry Pi sin ningún tipo de problema
jmviper:
--- Cita de: jantoni en 11 de Enero de 2020, 20:21:16 ---
No sé si este método funcionará. El comando .dump, al menos lo que yo recuerdo vagamente, vuelca la estructura de una base de datos en un fichero de texto, pero no recuerdo que sirva para insertar datos en una tabla o base da datos.
--- Fin de la cita ---
.dump vuelca la estructura y datos para ser insertados en pantalla o a un archivo de texto como dices (> archivodump) de manera que queda con los comandos para ser volcados a una nueva base de datos.
Esto sería el principio de ese fichero de volcado:
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE archive (`dateTime` INTEGER NOT NULL UNIQUE PRIMARY KEY, `usUnits` INTEGER NOT NULL, `interval` INTEGER NOT NULL, `barometer` REAL, `pressure` REAL, `altimeter` REAL, `inTemp` REAL, `outTemp` REAL, `inHumidity` REAL, `outHumidity` REAL, `windSpeed` REAL, `windDir` REAL, `windGust` REAL, `windGustDir` REAL, `rainRate` REAL, `rain` REAL, `dewpoint` REAL, `windchill` REAL, `heatindex` REAL, `ET` REAL, `radiation` REAL, `UV` REAL, `extraTemp1` REAL, `extraTemp2` REAL, `extraTemp3` REAL, `soilTemp1` REAL, `soilTemp2` REAL, `soilTemp3` REAL, `soilTemp4` REAL, `leafTemp1` REAL, `leafTemp2` REAL, `extraHumid1` REAL, `extraHumid2` REAL, `soilMoist1` REAL, `soilMoist2` REAL, `soilMoist3` REAL, `soilMoist4` REAL, `leafWet1` REAL, `leafWet2` REAL, `rxCheckPercent` REAL, `txBatteryStatus` REAL, `consBatteryVoltage` REAL, `hail` REAL, `hailRate` REAL, `heatingTemp` REAL, `heatingVoltage` REAL, `supplyVoltage` REAL, `referenceVoltage` REAL, `windBatteryStatus` REAL, `rainBatteryStatus` REAL, `outTempBatteryStatus` REAL, `inTempBatteryStatus` REAL);
INSERT INTO archive VALUES(1577833200,16,1,1033.9184870972262242,1019.0710743604474153,1033.3511365830867489,12.5,7.6111111111111124927,64.000000000000003552,88.000000000000007105,0.96561120001789539912,64.555805166451261101,3.2187040000596525146,60.999999999999996447,0.0,0.0,5.7513713696524799701,7.6111111111111124927,7.6111111111111124927,0.0,0.0,0.0,7.600000000000001421,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,88.09999999999998721,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.0,5.0499999999999998223,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
INSERT INTO archive VALUES(1577833260,16,1,1033.9269017587111587,1019.0790431527625425,1033.3591975949421026,12.5,7.5555555555555526936,64.000000000000003552,87.787878787878774744,1.3167425454789487559,75.18549021140406019,3.2187040000596525146,67.000000000000001776,0.0,0.0,5.6616930498190027876,7.5555555555555526936,7.5555555555555526936,0.0,0.0,0.0,7.5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,88.200000000000002842,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.0,5.0499999999999998223,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
…………….
Crea las tablas e inserta los valores. La comodidad es que puedes editar los valores, copiar y pegar los que quieras o no etc etc con un editor de texto.
Luego se vuelca a la base de datos que se quiera con bbddnueva < archivodump.
Lo más importante de la BBDD de weewx es la tabla archive que son los datos de la estación. Siempre que se tenga se pueden quitar las tablas de diarios (drop-daily) o regenerarlos (rebuild-daily).
Lo normal es lo de insert into etc etc... pero con dump también se puede hacer y sobre todo para unir dos BBDD como he puesto antes. A fin de cuentas es como exportar una base de datos de MySQL con phpmyadmin o con mysqldump en la línea de comandos.
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa