Differences

This shows you the differences between two versions of the page.

Link to this comparison view

community:migration-4.0pre1 [2011/03/28 21:54] (current)
gradator created
Line 1: Line 1:
 +====== Migration de vhffs 4.0pre1 (stable) vers vhffs 4.1-alpha ======
 +
 +Note : **cette migration s'​effectue à vos risques et périls**, la version 4.1 n'est pas encore stabilisée,​ que ce soit au niveau du modèle de données ou au niveau du code. Si vous décidez de migrer quand même, abonnez vous à vhffs-dev pour être informé des commits au fur et à mesure. Si vous migrez vers la 4.1 et que vous faites des mises à jour ultérieures **vérifiez que des contraintes n'ont pas été ajoutées à la base**. Si après avoir lu ça vous voulez tout de même continuer, je ne dirai qu'une chose "bonne chance ! et rendez-vous sur l'​autre rive !"
 +
 +Après avoir installé avec plus ou moins de succès vhffs 4.0pre1, et comme la version 4.1-alpha commençait à devenir intéressante,​ je me suis dis qu'​avoir une version de vhffs 4.1-alpha en production permettrait certainement de faire progresser le code.
 +
 +L'​installation de la 4.0pre1 a déjà été expliqué, je vous laisse donc le soin de lire (et de mettre au propre) cette partie de l'​installation.
 +
 +Première étape : téléchargement de la 4.1-alpha : 
 +  ​
 +  svn co svn://​svn.tuxfamily.org/​svnroot/​vhffs4/​vhffs/​branches/​vhffs_4.1/​ /​usr/​src/​vhffs4.1/​
 +
 +tout va bien pour le moment. J'en profite, pendant qu'il est encore temps, pour faire une sauvegarde du fichier de configuration : 
 +
 +  cp /​etc/​vhffs/​vhffs.conf /​etc/​vhffs/​vhffs-4.01.conf
 +
 +Hop, on se place là où il faut bien
 +
 +  cd /​usr/​src/​vhffs4.1/​
 +
 +Ensuite le traditionnel ​
 +  ​
 +  # make install-debian
 +
 +Il installe des packages qui manquaient visiblement...
 +
 +Et tout se termine pour le mieux... Ouf !
 +
 +Il existe des scripts de migration tout prêts dans le répertoire vhffs-backend/​src/​pgsql/​ pour la migration de la base, on va lancer ça proprement !
 +
 +  # su postgres
 +  # psql vhffs vhffs -f vhffs-backend/​src/​pgsql/​alter_from4.0pre1_tocurrent.sql
 +
 +Comme je viens de cette version, hop le bon patch !
 +
 +Voici la sortie : 
 +
 +  DROP SEQUENCE
 +  DROP SEQUENCE
 +  DROP SEQUENCE
 +  DROP SEQUENCE
 +  DROP SEQUENCE
 +  DROP SEQUENCE
 +  DROP SEQUENCE
 +  DROP SEQUENCE
 +  DROP SEQUENCE
 +  psql:​vhffs-backend/​src/​pgsql/​alter_from4.0pre1_tocurrent.sql:​46:​ ERREUR: ​ La séquence «seq_virtualuid» n'​existe pas
 +  psql:​vhffs-backend/​src/​pgsql/​alter_from4.0pre1_tocurrent.sql:​47:​ ERREUR: ​ La séquence «seq_virtualgid» n'​existe pas
 +  DROP SEQUENCE
 +  DROP SEQUENCE
 +  DROP SEQUENCE
 +  DROP SEQUENCE
 +  DROP SEQUENCE
 +  DROP SEQUENCE
 +  DROP SEQUENCE
 +  DROP SEQUENCE
 +  CREATE SEQUENCE
 +  ALTER TABLE
 +  CREATE SEQUENCE
 +  ALTER TABLE
 +  CREATE SEQUENCE
 +  ALTER TABLE
 +  CREATE SEQUENCE
 +  ALTER TABLE
 +  CREATE SEQUENCE
 +  ALTER TABLE
 +  CREATE SEQUENCE
 +  ALTER TABLE
 +  CREATE SEQUENCE
 +  ALTER TABLE
 +  CREATE SEQUENCE
 +  ALTER TABLE
 +  CREATE SEQUENCE
 +  ALTER TABLE
 +  CREATE SEQUENCE
 +  ALTER TABLE
 +  CREATE SEQUENCE
 +  ALTER TABLE
 +  psql:​vhffs-backend/​src/​pgsql/​alter_from4.0pre1_tocurrent.sql:​99:​ INFO:  CREATE TABLE créera des séquences implicites «vhffs_repository_repository_id_seq» pour la colonne «serial» «vhffs_repository.repository_id»
 +  psql:​vhffs-backend/​src/​pgsql/​alter_from4.0pre1_tocurrent.sql:​99:​ INFO:  CREATE TABLE / PRIMARY KEY créera un index implicite «vhffs_repository_pkey» pour la table «vhffs_repository»
 +  CREATE TABLE
 +  ALTER TABLE
 +  ALTER TABLE
 +  ALTER TABLE
 +  psql:​vhffs-backend/​src/​pgsql/​alter_from4.0pre1_tocurrent.sql:​104:​ ERREUR: ​ erreur de syntaxe sur ou près de «$1» at character 43
 +  psql:​vhffs-backend/​src/​pgsql/​alter_from4.0pre1_tocurrent.sql:​104:​ LIGNE 1 : ALTER TABLE vhffs_history DROP CONSTRAINT $1;
 +  psql:​vhffs-backend/​src/​pgsql/​alter_from4.0pre1_tocurrent.sql:​104: ​                                                    ^
 +  ALTER TABLE
 +  CREATE VIEW
 +  psql:​vhffs-backend/​src/​pgsql/​alter_from4.0pre1_tocurrent.sql:​112:​ alter_from4.0_tocurrent.sql : Aucun fichier ou répertoire de ce type
 +
 +et voilà ! 
 +
 +Les deux premières erreurs ne sont pas méchantes (on essaie de droper des séquences inexistantes),​ la seconde était due à une erreur de syntaxe dans le script qui a été corrigée, toutefois PostgreSQL peut vous signaler que la contrainte $1 n'​existe pas, il faut alors exécuter l'​instruction ALTER TABLE vhffs_history DROP CONSTRAINT vhffs_history_object_id_fkey;​
 +Enfin la dernière dépend d'où vous lancez le script de migration. Si elle apparaît, lancez manuellement la commande psql vhffs vhffs -f vhffs-backend/​src/​pgsql/​alter_from4.0_tocurrent.sql
 +
 +On obtient en sortie : 
 +
 +  setval
 +  --------
 +     103
 +  (1 ligne)
 +  ​
 +  setval
 +  --------
 +     134
 +  (1 ligne)
 +  ​
 +  setval
 +  --------
 +   10031
 +  (1 ligne)
 +  ​
 +  setval
 +  --------
 +   10013
 +  (1 ligne)
 +  ​
 +  setval
 +  --------
 +      34
 +  (1 ligne)
 +  ​
 +  setval
 +  --------
 +       1
 +  (1 ligne)
 +   
 +  setval
 +  --------
 +       6
 +  (1 ligne)
 +  ​
 +  setval
 +  --------
 +      70
 +  (1 ligne)
 +  ​
 +  setval
 +  --------
 +       6
 +  (1 ligne)
 +  ​
 +  setval
 +  --------
 +      26
 +  (1 ligne)
 +  ​
 +  psql:​alter_from4.0_tocurrent.sql:​17:​ ERREUR: ​ la relation «vhffs_largefile» n'​existe pas
 +  setval
 +  --------
 +       1
 +  (1 ligne)
 +  ​
 +  setval
 +  --------
 +       6
 +  (1 ligne)
 +   
 +  setval
 +  --------
 +       1
 +  (1 ligne)
 +  ​
 +  setval
 +  --------
 +      13
 +  (1 ligne)
 +  ​
 +  setval
 +   ​--------
 +    913
 +  (1 ligne)
 +  ​
 +  setval
 +  --------
 +       1
 +  (1 ligne)
 +  ​
 +  setval
 +  --------
 +       1
 +  (1 ligne)
 +  ​
 +  setval
 +  --------
 +       1
 +  (1 ligne)
 +  psql:​alter_from4.0_tocurrent.sql:​28:​ INFO:  ALTER TABLE / ADD UNIQUE créera un index implicite «vhffs_users_unique_username» pour la table «vhffs_users»
 +  ALTER TABLE
 +  psql:​alter_from4.0_tocurrent.sql:​29:​ INFO:  ALTER TABLE / ADD UNIQUE créera un index implicite «vhffs_groups_unique_groupname» pour la table «vhffs_groups»
 +  ALTER TABLE
 +  ALTER TABLE
 +  ALTER TABLE
 + 
 +Ensuite, modifier les quelques changements dans /​etc/​vhffs/​vhffs.conf : 
 +
 +Remplacer <​databases>​ par 
 +
 +  <​database>​
 +                driver = pg
 +                #Database to use
 +                db_name=vhffs
 +                #Read Write User Name
 +                db_username=vhffs
 +                #Passwor
 +                db_password=vhffs
 +                #DataBase Server
 +                db_host=localhost
 +                #Database port
 +                db_port = 5432
 +  </​database>​
 +
 +Avec les valeurs qui vont bien, cela va sans dire...
 +
 +Et maintenant, sur le panel, j'ai un beau : 
 +
 +  Run VHFFS 4.1-alpha (hippocampus)
 +
 +\o/
 +
 +Temps passé : 20 minutes... avec la rédaction du wiki :-D
 +
 +----
 +
 +===Utilisation du updatedb.pl après le refactoring sql :===
 +
 +Depuis le répertoire racine de l'​installation (important) lancer : 
 +
 +  perl vhffs-compat/​updatedb.pl
 +
 +Sortie d'​écrans : 
 +
 +  **** VHFFS UPDATEDB ****
 +  This script will upgrade your database to the VHFFS 4.1's schema.
 +  Ensure that VHFFS is *stopped* !
 +  Use this script to your own risks!!!
 +  Do you still want to continue (Y/n) ? y
 +  Enter VHFFS DB hostname [localhost] : 
 +  Enter VHFFS DB name [vhffs] : 
 +  Enter VHFFS DB username [vhffs] : 
 +  Enter VHFFS DB password : 
 +  Do you want to perform a backup right now (Y/n) ? y
 +  Enter a filename for the backup file [/​tmp/​vhffs-backup.sql] : 
 +  It seems that you are not running vhffs 4.0, do you still want to upgrade (Y/n) ? 
 +   ​setval ​
 +  --------
 +      155
 +  (1 ligne)
 +  ​
 +   ​setval ​
 +  --------
 +      191
 +  (1 ligne)
 +  ​
 +   ​setval ​
 +  --------
 +    10049
 +  (1 ligne)
 +  ​
 +   ​setval ​
 +  --------
 +    10017
 +  (1 ligne)
 +  ​
 +     ​setval ​
 +  --------
 +       56
 +  (1 ligne)
 +  ​
 +   ​setval ​
 +  --------
 +        1
 +  (1 ligne)
 +  ​
 +   ​setval ​
 +  --------
 +        9
 +  (1 ligne)
 +  ​
 +   ​setval ​
 +  --------
 +      101
 +  ​
 +   ​setval ​
 +  --------
 +        9
 +  (1 ligne)
 +  ​
 +   ​setval ​
 +  --------
 +       40
 +  (1 ligne)
 +  ​
 +   ​setval ​
 +  --------
 +        2
 +  (1 ligne)
 +  ​
 +   ​setval ​
 +  --------
 +        8
 +  (1 ligne)
 +  ​
 +   ​setval ​
 +  --------
 +        1
 +  (1 ligne)
 +  ​
 +   ​setval ​
 +  --------
 +       20
 +  (1 ligne)
 +  ​
 +   ​setval ​
 +  --------
 +     1211
 +  (1 ligne)
 +  ​
 +   ​setval ​
 +  --------
 +        1
 +  (1 ligne)
 +   ​setval ​
 +  --------
 +        1
 +  (1 ligne)
 +  ​
 +   ​setval ​
 +  --------
 +        1
 +  (1 ligne)
 +  ​
 +  ALTER TABLE
 +  ALTER TABLE
 +  psql:/​usr/​src/​vhffs4.1/​./​vhffs-compat/​4.0.sql:​29:​ ERREUR: ​ La table «vhffs_largefile» n'​existe pas
 +  ALTER TABLE
 +  ALTER TABLE
 +  UPDATE 131
 +  UPDATE 16
 +  UPDATE 34
 +  UPDATE 27
 +  UPDATE 0
 +  UPDATE 16
 +  UPDATE 0
 +  UPDATE 0
 +  UPDATE 0
 +  UPDATE 7
 +  UPDATE 7
 +  UPDATE 0
 +  psql:/​usr/​src/​vhffs4.1/​./​vhffs-compat/​4.0.sql:​53:​ ERREUR: ​ Les instructions update ou delete sur «vhffs_object» viole la   ​contrainte de clé étrangère «vhffs_history_object_id_fkey» sur «vhffs_history»
 +  DETAIL: ​ La clé (object_id)=(75) est toujours référencée à partir de la table «vhffs_history».
 +  ALTER TABLE
 +  ALTER TABLE
 +  ALTER TABLE
 +  ALTER TABLE
 +  ALTER TABLE
 +  ALTER TABLE
 +  ALTER TABLE
 +  ALTER TABLE
 +  ALTER TABLE
 +  UPDATE 16
 +  ALTER TABLE
 +  UPDATE 8
 +  UPDATE 8
 +  ALTER TABLE
 +  ALTER TABLE
 +  UPDATE 16
 +  UPDATE 11
 +  ALTER TABLE
 +  ALTER TABLE
 +  UPDATE 34
 +  ALTER TABLE
 +  ALTER TABLE
 +  ALTER TABLE
 +  ALTER TABLE
 +  ALTER TABLE
 +  ALTER TABLE
 +  ALTER TABLE
 +  UPDATE 0
 +  ALTER TABLE
 +  UPDATE 0
 +  DROP VIEW
 +  CREATE VIEW
 +  Let's drop foreign keys...
 +        Dropping vhffs_history(vhffs_history_object_id_fkey)
 +        Dropping vhffs_acl(vhffs_acl_oid_src_fkey)
 +        Dropping vhffs_acl(vhffs_acl_oid_dst_fkey)
 +        Dropping vhffs_users(vhffs_users_pkey2)
 +        Dropping vhffs_groups(vhffs_groups_pkey2)
 +        Dropping vhffs_groups_info(vhffs_groups_info_fkey1)
 +        Dropping vhffs_groups_info(vhffs_groups_info_pkey2)
 +        Dropping vhffs_user_info(vhffs_user_info_fkey)
 +        Dropping vhffs_user_group(vhffs_user_group_fkey1)
 +        Dropping vhffs_user_group(vhffs_user_group_fkey2)
 +        Dropping vhffs_panel_user_prefs(vhffs_panel_user_prefs_uid_fkey)
 +        Dropping vhffs_notes(vhffs_notes_object_id_fkey)
 +        Dropping vhffs_dns_global(vhffs_dns_global_owner_gid_fkey)
 +        Dropping vhffs_dns_global(vhffs_dns_global_owner_uid_fkey)
 +        Dropping vhffs_dns_global(vhffs_dns_global_object_id_fkey)
 +        Dropping vhffs_dns_rr(vhffs_dns_rr_zone_fkey)
 +        Dropping vhffs_cvs(vhffs_cvs_owner_uid_fkey)
 +        Dropping vhffs_cvs(vhffs_cvs_owner_gid_fkey)
 +        Dropping vhffs_cvs(vhffs_cvs_object_id_fkey)
 +        Dropping vhffs_ml(vhffs_ml_domain_fkey)
 +        Dropping vhffs_ml(vhffs_ml_owner_uid_fkey)
 +        Dropping vhffs_ml(vhffs_ml_owner_gid_fkey)
 +        Dropping vhffs_ml(vhffs_ml_object_id_fkey)
 +        Dropping vhffs_ml_prefs(vhffs_ml_prefs_ml_id_fkey)
 +        Dropping vhffs_ml_subscribers(vhffs_ml_subscribers_ml_id_fkey)
 +        Dropping vhffs_mysql(vhffs_mysql_owner_uid_fkey)
 +        Dropping vhffs_mysql(vhffs_mysql_owner_gid_fkey)
 +        Dropping vhffs_mysql(vhffs_mysql_object_id_fkey)
 +        Dropping vhffs_svn(vhffs_svn_owner_uid_fkey)
 +        Dropping vhffs_svn(vhffs_svn_owner_gid_fkey)
 +        Dropping vhffs_svn(vhffs_svn_object_id_fkey)
 +        Dropping vhffs_pgsql(vhffs_pgsql_owner_uid_fkey)
 +        Dropping vhffs_pgsql(vhffs_pgsql_owner_gid_fkey)
 +        Dropping vhffs_pgsql(vhffs_pgsql_object_id_fkey)
 +        Dropping vhffs_httpd(vhffs_httpd_owner_uid_fkey)
 +        Dropping vhffs_httpd(vhffs_httpd_owner_gid_fkey)
 +        Dropping vhffs_repository(fk_vhffs_vhffs_repository_vhffs_users)
 +        Dropping vhffs_repository(fk_vhffs_vhffs_repository_vhffs_groups)
 +        Dropping vhffs_repository(fk_vhffs_vhffs_repository_vhffs_object)
 +        Dropping vhffs_history(fk_vhffs_history_vhffs_object)
 +   done.
 +  Let's drop unique key constraints
 +        Dropping vhffs_mxdomain(vhffs_mxdomain_domain_key)
 +        Dropping vhffs_users(vhffs_users_unique_username)
 +        Dropping vhffs_groups(vhffs_groups_unique_groupname)
 +        Dropping vhffs_httpd(vhffs_httpd_unique_servername)
 +   done.
 +  Let's drop indexes
 +        Dropping index idx_vhffs_httpd_servername_firstletter
 +        Dropping index idx_vhffs_object_state
 +   done.
 +  Creating new foreign key, indexes and unique keys...
 +        Creating vhffs_users(vhffs_users_unique_username)
 +  INFO:  ALTER TABLE / ADD UNIQUE créera un index implicite «vhffs_users_unique_username» pour la table «vhffs_users»
 +        Creating vhffs_groups(vhffs_groups_unique_groupname)
 +  INFO:  ALTER TABLE / ADD UNIQUE créera un index implicite «vhffs_groups_unique_groupname» pour la table «vhffs_groups»
 +        Creating vhffs_cvs(vhffs_cvs_unique_cvsroot)
 +  INFO:  ALTER TABLE / ADD UNIQUE créera un index implicite «vhffs_cvs_unique_cvsroot» pour la table «vhffs_cvs»
 +        Creating vhffs_httpd(vhffs_httpd_unique_servername)
 +  INFO:  ALTER TABLE / ADD UNIQUE créera un index implicite «vhffs_httpd_unique_servername» pour la table «vhffs_httpd»
 +        Creating vhffs_mxdomain(vhffs_mxdomain_unique_domainname)
 +  INFO:  ALTER TABLE / ADD UNIQUE créera un index implicite «vhffs_mxdomain_unique_domainname» pour la table «vhffs_mxdomain»
 +        Creating idx_vhffs_httpd_servername_firstletter ON vhffs_httpd(substr(servername,​ 1, 1))
 +        Creating idx_vhffs_object_state ON vhffs_object(state)
 +        Creating vhffs_acl(fk_vhffs_acl_vhffs_object_dst)
 +        Creating vhffs_acl(fk_vhffs_acl_vhffs_object_src)
 +        Creating vhffs_groups(fk_vhffs_group_vhffs_object)
 +        Creating vhffs_groups(fk_vhffs_group_vhffs_users)
 +        Creating vhffs_users(fk_vhffs_users_vhffs_object)
 +        Creating vhffs_cvs(fk_vhffs_cvs_vhffs_users)
 +        Creating vhffs_cvs(fk_vhffs_cvs_vhffs_groups)
 +        Creating vhffs_cvs(fk_vhffs_cvs_vhffs_object)
 +        Creating vhffs_dns_global(fk_vhffs_dns_vhffs_users)
 +        Creating vhffs_dns_global(fk_vhffs_dns_vhffs_groups)
 +        Creating vhffs_dns_global(fk_vhffs_dns_vhffs_object)
 +        Creating vhffs_dns_rr(fk_vhffs_dns_rr_vhffs_dns)
 +        Creating vhffs_httpd(fk_vhffs_httpd_vhffs_users)
 +        Creating vhffs_httpd(fk_vhffs_httpd_vhffs_groups)
 +        Creating vhffs_repository(fk_vhffs_vhffs_repository_vhffs_users)
 +        Creating vhffs_repository(fk_vhffs_vhffs_repository_vhffs_groups)
 +        Creating vhffs_repository(fk_vhffs_vhffs_repository_vhffs_object)
 +        Creating vhffs_mxdomain(fk_vhffs_mxdomain_vhffs_users)
 +        Creating vhffs_mxdomain(fk_vhffs_mxdomain_vhffs_groups)
 +        Creating vhffs_mxdomain(fk_vhffs_mxdomain_vhffs_object)
 +        Creating vhffs_ml(fk_vhffs_ml_vhffs_users)
 +        Creating vhffs_ml(fk_vhffs_ml_vhffs_groups)
 +        Creating vhffs_ml(fk_vhffs_ml_vhffs_object)
 +        Creating vhffs_ml(fk_vhffs_ml_vhffs_mxdomain)
 +        Creating vhffs_ml_subscribers(fk_vhffs_ml_subscribers_vhffs_ml)
 +        Creating vhffs_mysql(fk_vhffs_mysql_vhffs_users)
 +        Creating vhffs_mysql(fk_vhffs_mysql_vhffs_groups)
 +        Creating vhffs_mysql(fk_vhffs_mysql_vhffs_object)
 +        Creating vhffs_history(fk_vhffs_history_vhffs_object)
 +        Creating vhffs_pgsql(fk_vhffs_pgsql_vhffs_users)
 +        Creating vhffs_pgsql(fk_vhffs_pgsql_vhffs_groups)
 +        Creating vhffs_pgsql(fk_vhffs_pgsql_vhffs_object)
 +        Creating vhffs_svn(fk_vhffs_svn_vhffs_users)
 +        Creating vhffs_svn(fk_vhffs_svn_vhffs_groups)
 +        Creating vhffs_svn(fk_vhffs_svn_vhffs_object)
 +        Creating vhffs_user_group(fk_vhffs_user_group_vhffs_users)
 +        Creating vhffs_user_group(fk_vhffs_user_group_vhffs_groups)
 +  Fixing \s in objects'​ description... done.
 +  Fixing \s in objects'​ history... done.
 +  Fixing \s in users' informations... done.
  
Recent changes RSS feed Creative Commons License Donate Minima Template by Wikidesign Driven by DokuWiki