Migrer une application Rails vers MariaDB


Je ne me suis jamais posé la question et j’ai toujours utilisé MySQL pour mes projets Ruby on Rails. Jusqu’au jour ou j’ai acheté un Raspberry Pi 3 pour remplacer mon serveur Raspberry Pi 2. Et là.. impossible de remettre la même configuration… Au lieu de m’en têter à installer MySSQL, j’ai décidé de migrer vers MariaDB qui est officiellement supporté par Raspbian.

On commence donc par installer MariaDB sur le Raspberry Pi.

sudo apt install mariadb-server libmariadb-dev

La petite subtilité par rapport à MySQL est que rien n’est affiché pour spécifié l’utilisateur par défault. Pour se connecter il suffit de lancer mariadb avec sudo:

sudo mariadb
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 6
Server version: 10.1.23-MariaDB-9+deb9u1 Raspbian 9.0

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

On commence donc par sécuriser notre serveur avec la commande

sudo mysql_secure_installation
# on peut aussi le faire à la main
sudo mysql -e "CREATE USER 'pi'@'localhost' IDENTIFIED BY 'pi'"
sudo mysql -e "GRANT ALL PRIVILEGES ON *.* TO 'pi'@'localhost' WITH GRANT OPTION"

Et pour tester que tout c’est bien passé, on se connecte de la même façon qu’on le faisait avec MySQL

mariadb -u pi -ppi

La bonne nouvelle, c’est qu’au niveau de l’application Ruby On Rails nous n’avons pas besoin de changer quoique ce soit:


# Gemfile

gem 'mysql2'

# config/database.yml
development:
  adapter: mysql2
  database: fooder
  pool: 5
  encoding: utf8
  username: pi
  password: pi
  host: localhost

Donc il suffit de lancer les migrations et lancer notre serveur de développement.

bundle install
rake db:create
rake db:migrate
rails s

Si tout pouvait être aussi simple…


Cet article de Alexandre Rousseau est mise à disposition selon les termes de la CC BY-NC-SA 4.0.