Quiero crear mi aplicación Rails con MySQL, porque me gusta mucho. ¿Cómo puedo hacer eso en la última versión de Rails en lugar del SQLite predeterminado?
Quiero crear mi aplicación Rails con MySQL, porque me gusta mucho. ¿Cómo puedo hacer eso en la última versión de Rails en lugar del SQLite predeterminado?
Respuestas:
Si ya tiene un proyecto de rieles, cambie el adaptador en el config/database.yml
archivo mysql
y asegúrese de especificar un nombre de usuario y contraseña válidos y, opcionalmente, un socket:
development:
adapter: mysql2
database: db_name_dev
username: koploper
password:
host: localhost
socket: /tmp/mysql.sock
Luego, asegúrese de editar su Gemfile para incluir el mysql2 o activerecord-jdbcmysql-adapter (si usa jruby).
gem 'sqlite3'
y agregargem 'mysql2'
Normalmente, crearía una nueva aplicación Rails usando
rails ProjectName
Para usar MySQL, use
rails new ProjectName -d mysql
Para Rails 3 puede usar este comando para crear un nuevo proyecto usando mysql:
$ rails new projectname -d mysql
Si aún no ha creado su aplicación, simplemente vaya a cmd (para Windows) o terminal (para Linux / Unix) y escriba el siguiente comando para crear una aplicación Rails con la base de datos MySQL:
$rails new <your_app_name> -d mysql
Funciona para cualquier cosa por encima de la versión 3 de Rails. Si ya ha creado su aplicación, puede hacer una de las 2 cosas siguientes:
O
desarrollo:
adaptador: base de
datos mysql2 : db_name_name
nombre de usuario: root root
:
host: localhost
socket: /tmp/mysql.sock
Además, elimine la gema 'sqlite3' de su Gemfile y agregue la gema 'mysql2'
Si está utilizando rails 3 o una versión superior
rails new your_project_name -d mysql
si tienes una versión anterior
rails new -d mysql your_project_name
Entonces, antes de crear su proyecto, necesita encontrar la versión de rieles. que puedes encontrar por
rails -v
rails new <project_name> -d mysql
O
rails new projectname
Cambios en config / database.yml
development:
adapter: mysql2
database: db_name_name
username: root
password:
host: localhost
socket: /tmp/mysql.sock
Crear aplicación con la opción -d
rails new AppName -d mysql
$ rails --help
siempre es tu mejor amigo
uso:
$ rails new APP_PATH[options]
También tenga en cuenta que las opciones deben darse después del nombre de la aplicación
rieles y mysql
$ rails new project_name -d mysql
rieles y postgresql
$ rails new project_name -d postgresql
Debe usar el modificador -D en lugar de -d porque generará dos aplicaciones y mysql sin carpetas de documentación.
rails -D mysql project_name (less than version 3)
rails new project_name -D mysql (version 3 and up)
Alternativamente, solo usa la --database
opción.
Simplemente vaya a la consola de rieles y escriba:
rails new YOURAPPNAME -d mysql
Si está creando una nueva aplicación de rieles, puede configurar la base de datos utilizando el modificador -d de esta manera:
rails -d mysql myapp
Sin embargo, siempre es fácil cambiar su base de datos más adelante, y usar sqlite realmente es más fácil si está desarrollando en una Mac.
En un nuevo proyecto, fácil guisante:
rails new your_new_project_name -d mysql
En un proyecto existente, definitivamente más complicado. Esto me ha dado una serie de problemas en proyectos de rieles existentes. Este tipo de trabajo funciona 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 gem esté instalado, si no? que escriba el siguiente comando en su consola
gem install mysql2
Luego, cree una nueva aplicación de rieles y configure la base de datos mysql como base de datos predeterminada escribiendo el siguiente comando en su consola
rails new app-name -d mysql
Use el siguiente comando para crear una nueva aplicación para 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
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: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'
primero debe asegurarse de que el controlador MySQL esté en su sistema si no lo ejecuta en su terminal si está usando Ubuntu o cualquier distribución de Debian
sudo apt-get install mysql-client libmysqlclient-dev
y agrega esto a tu Gemfile
gem 'mysql2', '~> 0.3.16'
luego ejecutar en su directorio raíz del proyecto
bundle install
después de eso, puede agregar la configuración de mysql a config / database.yml como las respuestas anteriores