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

Translate

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

This question and all comments follow the "Attribution Required."

Toutes les réponses

Translate

Si vous avez déjà un projet de rails, changez l'adaptateur dans leconfig/database.ymldéposer versmysqlet 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 Gemfile pour inclure le mysql2 ou activerecord-jdbcmysql-adapter (si vous utilisez jruby).

La source
Translate

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

rails ProjectName

Pour utiliser MySQL, utilisez

rails new ProjectName -d mysql
La source
Translate

Pour Rails 3, vous pouvez utiliser cette commande pour créer un nouveau projet en utilisant mysql:

$ rails new projectname -d mysql
La source
Translate

Accédez au terminal et écrivez:

rails new <project_name> -d mysql
La source
Translate

Si vous n'avez pas encore créé votre application, allez simplement dans cmd (pour windows) ou terminal (pour linux / unix) et tapez la commande suivante pour créer une application rails avec la base de données mysql:

$rails new <your_app_name> -d mysql

Cela fonctionne pour tout ce qui est au-dessus de la version 3. de rails. Si vous avez déjà créé votre application, vous pouvez effectuer l'une des 2 opérations suivantes:

  1. Créer unun autre nomapplication avec base de données mysql, allez sur cdun autre nom/ config / et copiez le fichier database.yml de cette nouvelle application. Collez-le dans le database.yml devotre_nom_appapp. Mais assurez-vous de changer les noms de base de données et de définir le nom d'utilisateur / mot de passe de votre base de données en conséquence dans le fichier database.yml après cela.

OR

  1. Aller au cdvotre_nom_app/ config / et ouvrez database.yml. Renommez comme suit:

développement:
adaptateur: mysql2
base de données: nom_nom_base
nom d'utilisateur: root
mot de passe:
hôte: localhost
socket: /tmp/mysql.sock

De plus, supprimez le gem 'sqlite3' de votre Gemfile et ajoutez le gem 'mysql2'

La source
Translate

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
La source
Translate
rails -d mysql ProjectName
La source
Translate
rails new <project_name> -d mysql

OR

rails new projectname

Changements dans config / database.yml

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

Créer une application avec l'option -d

rails new AppName -d mysql
La source
Translate
$ rails --help 

est toujours votre meilleur ami

usage:

$ rails new APP_PATH[options]

notez également que les options doivent être indiqué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
La source
Translate

Vous devriez 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)

Sinon, utilisez simplement le--databaseoption.

La source
Translate

Allez simplement à la console des rails et tapez:

rails new YOURAPPNAME -d mysql
La source
Translate

Dans Rails 3, vous pourriez faire

$rails new projectname --database=mysql
La source
Translate

Si vous créez une nouvelle application de rails, vous pouvez définir la base de données à l'aide du commutateur -d comme ceci:

rails -d mysql myapp

Cependant, il est toujours facile de changer votre base de données plus tard, et l'utilisation de sqlite est vraiment plus facile si vous développez sur un Mac.

La source
Translate

Sur un nouveau projet, easy peasy:

rails new your_new_project_name -d mysql

Sur projet existant, certainement plus délicat. Cela m'a posé un certain nombre de problèmes sur les projets ferroviaires 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 
La source
Translate

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

gem install mysql2

Ensuite, créez une nouvelle application de rails et définissez la base de données mysql comme base de données par défaut en tapant la commande suivante dans votre console

rails new app-name -d mysql
La source
Translate

Utilisez la commande suivante pour créer une nouvelle application pour l'API avec la base de données mysql

rails new <appname> --api -d mysql


  adapter: mysql2
  encoding: utf8
  pool: 5
  username: root
  password: 
  socket: /var/run/mysqld/mysqld.sock
La source
Translate

database.yml

# MySQL. Versions 5.1.10 and up are supported.
#
# Install the MySQL driver
#   gem install mysql2
#
# Ensure the MySQL gem is defined in your Gemfile
#   gem 'mysql2'
#
# And be sure to use new-style password hashing:
#   https://dev.mysql.com/doc/refman/5.7/en/password-hashing.html
#
default: &default
  adapter: mysql2
  encoding: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  host: localhost
  database: database_name
  username: username
  password: secret

development:
  <<: *default

# 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:
  <<: *default

# As with config/secrets.yml, you never want to store sensitive information,
# like your database password, in your source code. If your source code is
# ever seen by anyone, they now have access to your database.
#
# Instead, provide the password as a unix environment variable when you boot
# the app. Read http://guides.rubyonrails.org/configuring.html#configuring-a-database
# for a full rundown on how to provide these environment variables in a
# production deployment.
#
# On Heroku and other platform providers, you may have a full connection URL
# available as an environment variable. For example:
#
#   DATABASE_URL="mysql2://myuser:[email protected]/somedatabase"
#
# You can use this database configuration with:
#
#   production:
#     url: <%= ENV['DATABASE_URL'] %>
#
production:
  <<: *default

Gemfile:

# Use mysql as the database for Active Record
gem 'mysql2', '>= 0.4.4', '< 0.6.0'
La source