Mise à jour base de données pour migration JeedomV4
Opened this issue · 3 comments
J'ai comparé les bases de données à l'aide des exports des différentes versions. JeedomV3
, JeedomV4
et Nextdom
. Voici les éléments pour la suite des opérations.
Dans la table cmd
:
- le varchar
logicalId
passe de 127 à 255 - le varchar
name
passe de 45 à 127
Dans la table config
:
- le varchar
logicalId
passe de 255 à 127
Dans la table eqReal
:
- le varchar
logicalId
passe de 45 à 127
Dans la table interactDef
:
- nouveau champ
display
text COLLATE utf8_unicode_ci en fin de liste
Dans la table message
:
- nouveau champ
occurrences
int(11) DEFAULT NULL en fin de liste
Dans la table object
:
- le varchar
name
passe de 45 à 127
Dans la table plan3dHeader
:
- nouveau champ
order
int(11) DEFAULT NULL, en fin de liste + KEYorder
(order
)
Dans la table planHeader
:
- nouveau champ
order
int(11) DEFAULT NULL, en fin de liste
Dans la table scenario
:
- suppression du champs champ
type
Dans la table scenarioSubElement
:
- nouveau champ
order
int(11) DEFAULT NULL, en fin de liste
Ajout de la table widdgets :
DROP TABLE IF EXISTS `widgets`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `widgets` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`type` varchar(27) COLLATE utf8_unicode_ci DEFAULT NULL,
`subtype` varchar(27) COLLATE utf8_unicode_ci DEFAULT NULL,
`template` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`display` text COLLATE utf8_unicode_ci,
`replace` text COLLATE utf8_unicode_ci,
`test` text COLLATE utf8_unicode_ci,
PRIMARY KEY (`id`),
UNIQUE KEY `unique` (`type`,`subtype`,`name`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
/*!40101 SET character_set_client = @
Attention, dans la table cmd
il y a un champ en plus dans nextdom : html
.
Si on restaure un jeedomV4
sur nextdom0.7
les erreurs concernant la base de donnée sont :
- Erreur SQL concernant la suppression du champs
type
dansscenario
. Des requêtes utilisent ce champs. - Erreur SQL concernant le champs
html
danscmd
qui n'existe plus dans la base. car la migration à fait undrop+create
de la table. mais lors ducreate
le champhtml
n'existe plus.
Il y en a peut-être d'autres mais déjà si on enlève ces deux là, on y verrait plus claire.
J'ai pu faire des tests : Tout d'abord j'ai ajouté après avoir remonté un jeedomV4
les colonnes :
ALTER TABLE `cmd` add `html` mediumtext COLLATE utf8_unicode_ci;
ALTER TABLE `scenario` add `type` varchar(127) COLLATE utf8_unicode_ci DEFAULT 'expert' AFTER configuration;
Cela marche plutôt bien, mais j'ai l'impression que l'import de toutes la table n'avait pas été faite car il y a des manques (ex j'ai plus les historiques des commandes)
Pour faire une restauration plus propre et espérer avoir l'historique, j'ai modifié le fichier DB_backup.sql
avant import pour avoir les deux colonnes manquantes :
CREATE TABLE `cmd` (
[...]
`html` mediumtext COLLATE utf8_unicode_ci,
[...]
)
INSERT INTO `cmd` (`id`,`eqLogic_id`,`eqType`,`logicalId`,`generic_type`,`order`,`name`,`configuration`,`template`,`isHistorized`,`type`,`subType`,`unite`,`display`,`isVisible`,`value`,`alert`) VALUES(...)
)
CREATE TABLE `scenario` (
[...]
`type` varchar(127) COLLATE utf8_unicode_ci DEFAULT 'expert',
[...]
)
INSERT INTO `scenario` (`id`,`name`,`group`,`isActive`,`mode`,`schedule`,`scenarioElement`,`trigger`,`timeout`,`isVisible`,`object_id`,`display`,`description`, `configuration`,`order`) VALUES(.......)
Car contre lors de la restaure cela me provoque une erreur >> *** ERROR *** unable to modify content of backup file /tmp/nextdom-restore-2020-03-19-11:48:54/DB_backup.sql
Cela doit être normal car le fichier a bien été modifié par moi.
La table eqReal
est définitivement supprimé chez jeedom