Eu quero criar meu aplicativo Rails com o MySQL, porque eu gosto muito. Como posso fazer isso na versão mais recente do Rails, em vez do SQLite padrão?
Eu quero criar meu aplicativo Rails com o MySQL, porque eu gosto muito. Como posso fazer isso na versão mais recente do Rails, em vez do SQLite padrão?
Respostas:
Se você já possui um projeto rails, altere o adaptador no config/database.yml
arquivo para mysql
e certifique-se de especificar um nome de usuário e senha válidos e, opcionalmente, um soquete:
development:
adapter: mysql2
database: db_name_dev
username: koploper
password:
host: localhost
socket: /tmp/mysql.sock
Em seguida, certifique-se de editar seu Gemfile para incluir o mysql2 ou o activerecord-jdbcmysql-adapter (se estiver usando o jruby).
gem 'sqlite3'
e adicionargem 'mysql2'
Normalmente, você criaria um novo aplicativo Rails usando
rails ProjectName
Para usar o MySQL, use
rails new ProjectName -d mysql
Para o Rails 3, você pode usar este comando para criar um novo projeto usando o mysql:
$ rails new projectname -d mysql
Se você ainda não criou seu aplicativo, vá para cmd (para windows) ou terminal (para linux / unix) e digite o seguinte comando para criar um aplicativo rails com o banco de dados mysql:
$rails new <your_app_name> -d mysql
Funciona para qualquer coisa acima da versão 3. do rails. Se você já criou seu aplicativo, pode executar um dos seguintes procedimentos:
OU
desenvolvimento:
adaptador:
banco de dados mysql2 : db_name_name
nome de usuário: root
senha:
host: localhost
socket: /tmp/mysql.sock
Além disso, remova a gem 'sqlite3' do seu Gemfile e adicione a gem 'mysql2'
Se você estiver usando os trilhos versão 3 ou superior
rails new your_project_name -d mysql
se você tem versão anterior
rails new -d mysql your_project_name
Portanto, antes de criar seu projeto, você precisa encontrar a versão do rails. que você pode encontrar por
rails -v
rails new <project_name> -d mysql
OU
rails new projectname
Alterações em config / database.yml
development:
adapter: mysql2
database: db_name_name
username: root
password:
host: localhost
socket: /tmp/mysql.sock
Criar aplicativo com a opção -d
rails new AppName -d mysql
$ rails --help
é sempre seu melhor amigo
uso:
$ rails new APP_PATH[options]
Observe também que as opções devem ser dadas após o nome do aplicativo
trilhos e mysql
$ rails new project_name -d mysql
trilhos e postgresql
$ rails new project_name -d postgresql
Você deve usar a opção -D em vez de -d, pois ela gerará dois aplicativos e o mysql sem pastas de documentação.
rails -D mysql project_name (less than version 3)
rails new project_name -D mysql (version 3 and up)
Como alternativa, você apenas usa a --database
opção
Basta ir ao console do Rails e digite:
rails new YOURAPPNAME -d mysql
Se você estiver criando um novo aplicativo de trilhos, poderá definir o banco de dados usando a opção -d como esta:
rails -d mysql myapp
É sempre fácil alternar seu banco de dados posteriormente, e usar o sqlite é realmente mais fácil se você estiver desenvolvendo em um Mac.
Em novo projeto, fácil de usar:
rails new your_new_project_name -d mysql
No projeto existente, definitivamente mais complicado. Isso me deu várias questões em projetos de trilhos existentes. Esse tipo de funciona comigo:
# 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
Primeiro verifique se o mysql gem está instalado, se não? que digite o seguinte comando no seu console
gem install mysql2
Em seguida, crie um novo aplicativo rails e defina o banco de dados mysql como banco de dados padrão, digitando o seguinte comando no console
rails new app-name -d mysql
Use o comando a seguir para criar um novo aplicativo para API com banco de dados 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'
você deve primeiro certificar-se de que o driver MySQL esteja no seu sistema, se não o executar no seu terminal, se você estiver usando o Ubuntu ou qualquer distribuição Debian
sudo apt-get install mysql-client libmysqlclient-dev
e adicione isso ao seu Gemfile
gem 'mysql2', '~> 0.3.16'
então execute no seu diretório raiz do projeto
bundle install
depois disso, você pode adicionar a configuração do mysql ao config / database.yml como as respostas anteriores