Comme notre installation de GitlabHQ à SRMvision est faite pour rester, nous avons décidé de migrer de la base SQLite vers un système plus simple à gérer pour nous : mySQL.
Les étapes sont assez simple, premièrement, configurons mySQL :
create database gitlab; grant all privileges on gitlab.* to "gitlab" identified by "gitlab"; flush privileges;
Ensuite récupérons les données existantes dans GitlabHQ, arrêtez votre serveur, puis, depuis le dossier de GitlabHQ :
bundle exec rake db:data:dump RAILS_ENV=production
ceci va créer un fichier db/data.yml. Tout ce qu’il vous reste à faire maintenant est de reconfigurer GitlabHQ pour lui dire de se connecter à mySQL et d’y intégrer les données existantes.
La configuration de la base de données à utiliser se trouve dans le fichier config/database.yml, sauvegardez le et récupérez le database.yml.example comme base de travail:
mv config/database.yml config/database.yml.old cp config/database.yml.example config/database.yml
Il ne vous reste qu’à éditer le fichier pour refléter votre configuration, seule la partie production du fichier est utile dans notre cas :
development: adapter: mysql2 encoding: utf8 reconnect: false database: gitlabhq_development pool: 5 username: root password: "secure password" # socket: /tmp/mysql.sock # Warning: The database defined as "test" will be erased and # re-generated from your development database when you run "rake". # Do not set this db to the same as development or production. test: adapter: mysql2 encoding: utf8 reconnect: false database: gitlabhq_test pool: 5 username: root password: "secure password" # socket: /tmp/mysql.sock production: adapter: mysql2 encoding: utf8 reconnect: true # permet de se reconnecter quand le service mysql redémarre database: gitlab # à remplacer avec le nom de votre base pool: 5 username: gitlab # à remplacer avec vos identifiants password: "gitlab" # à remplacer avec vos identifiants socket: /var/run/mysqld/mysqld.sock # mysql socket location on debian
Une fois ceci fait, il vous reste à créer le schéma et à importer vos données sauvegardées :
bundle exec rake db:setup RAILS_ENV=production bundle exec rake db:data:load RAILS_ENV=production
C’est tout, il ne reste plus qu’à redémarrer le serveur de GitlabHQ. Si toutefois ça ne fonctionnait pas, vous n’avez qu’à restaurer le fichier database.yml.old pour retourner à la configuration par défaut utilisant SQLite.