NextDom / nextdom-core

NextDom Core >>
https://www.nextdom.org/
GNU General Public License v3.0
21 stars 13 forks source link

Mise à jour base de données pour migration JeedomV4 #1711

Open lucguinchard opened 4 years ago

lucguinchard commented 4 years ago

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 :

Dans la table config :

Dans la table eqReal :

Dans la table interactDef :

Dans la table message :

Dans la table object :

Dans la table plan3dHeader :

Dans la table planHeader :

Dans la table scenario :

Dans la table scenarioSubElement :

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 = @
lucguinchard commented 4 years ago

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 :

Il y en a peut-être d'autres mais déjà si on enlève ces deux là, on y verrait plus claire.

lucguinchard commented 4 years ago

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.

lucguinchard commented 4 years ago

La table eqReal est définitivement supprimé chez jeedom