Créer une nouvelle application Ruby on Rails en utilisant MySQL au lieu de SQLite

Je veux créer mon application Rails avec MySQL, car je l’aime tellement. Comment puis-je le faire dans la dernière version de Rails au lieu de SQLite par défaut?

Si vous avez déjà un projet rails, changez la carte du fichier config/database.yml en mysql et assurez-vous de spécifier un nom d’utilisateur et un mot de passe valides, et éventuellement un socket:

 development: adapter: mysql2 database: db_name_dev username: koploper password: host: localhost socket: /tmp/mysql.sock 

Ensuite, assurez-vous d’éditer votre fichier Gemfile pour inclure l’adaptateur mysql2 ou activerecord-jdbcmysql (si vous utilisez jruby).

Normalement, vous créez une nouvelle application Rails en utilisant

 rails ProjectName 

Pour utiliser MySQL, utilisez

 rails new ProjectName -d mysql 

Ror rails 3 utilisation

 $rails new projectname -d mysql 

Allez au terminal et écrivez:

 rails new  -d mysql 

Si vous n’avez pas encore créé votre application, allez simplement sur cmd (pour windows) ou terminal (pour linux / unix) et tapez la commande suivante pour créer une application rails avec la firebase database mysql:

$rails new -d mysql

Cela fonctionne pour n’importe quoi au-dessus de la version des rails 3. Si vous avez déjà créé votre application, vous pouvez faire l’une des 2 choses suivantes:

  1. Créez une application another_name avec la firebase database mysql, allez dans cd another_name / config / et copiez le fichier database.yml de cette nouvelle application. Collez-le dans l’application database.yml de votre nom_app_name . Mais assurez-vous de changer les noms de firebase database et de définir en conséquence le nom d’utilisateur / mot de passe de votre firebase database dans le fichier database.yml.

OU

  1. Allez dans cd your_app_name / config / et ouvrez database.yml. Renommez comme suit:

développement:
adaptateur: mysql2
firebase database: nom_bd_base
nom d’utilisateur: root
mot de passe:
hôte: localhost
socket: /tmp/mysql.sock

En outre, retirez gem ‘sqlite3’ de votre Gemfile et ajoutez le gem ‘mysql2’

Si vous utilisez des rails 3 ou une version supérieure

 rails new your_project_name -d mysql 

si vous avez une version antérieure

 rails new -d mysql your_project_name 

Donc, avant de créer votre projet, vous devez trouver la version des rails. que vous pouvez trouver par

 rails -v 
 rails -d mysql ProjectName 
 rails new  -d mysql 

OU

 rails new projectname 

Changements dans config / database.yml

 development: adapter: mysql2 database: db_name_name username: root password: host: localhost socket: /tmp/mysql.sock 

Créer une application avec l’option -d

 rails new AppName -d mysql 
 $ rails --help 

est toujours ton meilleur ami

usage:

 $ rails new APP_PATH[options] 

notez également que les options doivent être données après le nom de l’application

rails et mysql

 $ rails new project_name -d mysql 

rails et postgresql

 $ rails new project_name -d postgresql 

Vous devez utiliser le commutateur -D au lieu de -d car il générera deux applications et mysql sans dossiers de documentation.

  rails -D mysql project_name (less than version 3) rails new project_name -D mysql (version 3 and up) 

Vous pouvez également utiliser l’option --database .

Allez simplement sur la console des rails et tapez:

 rails new YOURAPPNAME -d mysql 

Si vous créez une nouvelle application de rails, vous pouvez définir la firebase database en utilisant le commutateur -d comme ceci:

 rails -d mysql myapp 

Il est toujours facile de changer de firebase database ultérieurement, et utiliser sqlite est vraiment plus facile si vous développez sur un Mac.

Dans Rails 3, vous pourriez faire

 $rails new projectname --database=mysql 

Sur nouveau projet, facile à faire:

 rails new your_new_project_name -d mysql 

Sur un projet existant, certainement plus difficile. Cela m’a donné un certain nombre de problèmes sur les projets de rails existants. Ce genre de travail avec moi:

 # On Gemfile: gem 'mysql2', '>= 0.3.18', '< 0.5' # copied from a new project for rails 5.1 :) gem 'activerecord-mysql-adapter' # needed for mysql.. # On Dockerfile or on CLI: sudo apt-get install -y mysql-client libmysqlclient-dev 

Assurez-vous d’abord que mysql gem est installé, sinon? que de taper la commande suivante dans votre console

 gem install mysql2 

Que créer une nouvelle application de rails et définir la firebase database mysql comme firebase database par défaut en tapant la commande suivante dans votre console

 rails new app-name -d mysql 

Utilisez la commande suivante pour créer une nouvelle application pour API avec la firebase database mysql

 rails new  --api -d mysql adapter: mysql2 encoding: utf8 pool: 5 username: root password: socket: /var/run/mysqld/mysqld.sock