Migrer une application Rails vers MariaDB

  • mariadb
  • mysql
  • rails
  • raspberrypi
  • ruby

Publié le 2017-09-22

IntĂ©ressĂ© pour crĂ©er un API avec Ruby on Rails? Jette un coup d'Ɠil Ă  mon livre: API on Rails 6. Tu peux tĂ©lĂ©charger une version gratuite au format PDF sur Github. Si tu aimes mon travail tu peux acheter un version payante sur Leanpub.

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...

Articles liés