Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
lucguinchard opened this issue Mar 18, 2020 · 3 comments
Open

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

lucguinchard opened this issue Mar 18, 2020 · 3 comments
Milestone

Comments

@lucguinchard
Copy link
Contributor

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 + KEY order (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 = @
@lucguinchard
Copy link
Contributor Author

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 dans scenario. Des requêtes utilisent ce champs.
  • Erreur SQL concernant le champs html dans cmd qui n'existe plus dans la base. car la migration à fait un drop+create de la table. mais lors du create le champ html 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.

@lucguinchard
Copy link
Contributor Author

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 lucguinchard added this to the Fixes_0.8 milestone Mar 24, 2020
@lucguinchard
Copy link
Contributor Author

La table eqReal est définitivement supprimé chez jeedom

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant