Pregunta

Quiero crear mi aplicación Rails con MySQL, porque me gusta mucho.Cómo puedo hacer que en la última versión de Rails en lugar de la predeterminada SQLite?

¿Fue útil?

Solución

Si usted ya tiene un proyecto rails, cambie el adaptador en la config/database.yml archivo mysql y asegúrese de especificar un nombre de usuario válido y la contraseña y, opcionalmente, un socket:

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

A continuación, asegúrese de editar tu Gemfile para incluir la mysql2 o activerecord-jdbcmysql-adaptador (si se usa jruby).

Otros consejos

Normalmente, habría que crear una nueva aplicación Rails usando

rails ProjectName

El uso de MySQL, uso

rails new ProjectName -d mysql

Para Rails 3, puede utilizar este comando para crear un nuevo proyecto utilizando mysql:

$ rails new projectname -d mysql

Ir al terminal y escribir:

rails new <project_name> -d mysql

Si usted no ha creado su aplicación sin embargo, sólo tiene que ir a cmd(para windows) o terminal(para linux/unix) y escriba el siguiente comando para crear una aplicación rails con base de datos mysql:

$rails new <your_app_name> -d mysql

Funciona para nada por encima de los rieles de la versión 3.Si usted ya ha creado su aplicación, entonces usted puede hacer una de las 2 siguientes cosas:

  1. Crear un another_name aplicación con base de datos mysql, vaya a la unidad de cd another_name/config/ y copiar la base de datos.yml archivo de esta nueva aplicación.Pegarlo en la base de datos.yml de your_app_name app.Pero asegúrese de cambiar los nombres de base de datos y establecer nombre de usuario/contraseña de su base de datos en consecuencia en la base de datos.yml archivo después de hacerlo.

O

  1. Ir a la cd your_app_name/config/ y abrir la base de datos.yml.Cambiar el nombre de la siguiente manera:

desarrollo:
adaptador:mysql2
base de datos:db_name_name
nombre de usuario:raíz
contraseña:
host:localhost
socket:/tmp/mysql.calcetín

Por otra parte, eliminar gem "sqlite3" de su Gemfile y añadir la gema 'mysql2'

Si usted está usando rails 3 o superior versión

rails new your_project_name -d mysql

si usted tiene la versión anterior

rails new -d mysql your_project_name

Así que antes de crear el proyecto que usted necesita para encontrar la versión de rails.que se pueden encontrar por

rails -v
rails -d mysql ProjectName
rails new <project_name> -d mysql

O

rails new projectname

Los cambios en el archivo config/database.yml

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

Crear una aplicación con la opción-d

rails new AppName -d mysql
$ rails --help 

es siempre tu mejor amigo

uso:

$ rails new APP_PATH[options]

también tenga en cuenta que las opciones que debe ser dado después de que el nombre de la aplicación

rails y mysql

$ rails new project_name -d mysql

rieles y postgresql

$ rails new project_name -d postgresql

Usted debe utilizar el modificador -D en lugar de la -d porque va a generar dos aplicaciones y mysql con ninguna documentación de las carpetas.

  rails -D mysql project_name  (less than version 3)

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

Alternativamente, usted sólo tiene que utilizar el --database opción.

Simplemente vaya a la consola de rails y escriba:

rails new YOURAPPNAME -d mysql

En Rails 3, que podría hacer

$rails new projectname --database=mysql

Si va a crear una nueva aplicación rails puede establecer la base de datos utilizando el modificador-d como esta:

rails -d mysql myapp

Siempre es fácil cambiar la base de datos más adelante, aunque, y el uso de sqlite en realidad es más fácil si se están desarrollando en un Mac.

En el nuevo proyecto de easy peasy:

rails new your_new_project_name -d mysql

En el proyecto existente, definitivamente más complicado.Esto me ha dado una serie de problemas existentes en los rieles de los proyectos.Este tipo de obras conmigo:

# 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 

Primero asegúrese de que mysql joya está instalado, si no?que escriba el siguiente comando en la consola

gem install mysql2

De crear nueva aplicación rails y el conjunto de bases de datos mysql como base de datos predeterminada escribiendo el siguiente comando en la consola

rails new app-name -d mysql

Utilice el siguiente comando para crear nueva aplicación para la API con la base de datos mysql

rails new <appname> --api -d mysql


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

la base de datos.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:mypass@localhost/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'
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top