Criar uma nova aplicação do Ruby on Rails usando o MySQL em vez do SQLite

Quero criar a minha aplicação de Carris com o MySQL, porque gosto muito dela. Como posso fazer isso na versão mais recente de Rails em vez do SQLite padrão?

Author: random, 2008-08-06

19 answers

Se já tiver um projecto rails, mude o adaptador do ficheiro config/database.yml para mysql e certifique-se que indica um nome de utilizador e uma senha válidos e, opcionalmente, um 'socket':

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

A seguir, certifique-se que edita o seu ficheiro Gemfile para incluir o adaptador mysql2 ou activerecord-jdbcmysql (se usar o JR).

 141
Author: Michiel de Mare, 2014-01-07 10:59:29

Normalmente, você criaria uma nova aplicação de Carris usando

rails ProjectName

Para utilizar MySQL, use

rails new ProjectName -d mysql
 262
Author: Daniel Broekman, 2012-08-10 00:45:46

Para o Rails 3, pode usar este comando para criar um novo projecto usando o mysql:

$ rails new projectname -d mysql
 58
Author: Robbie Done, 2018-10-20 14:00:00

Vá ao terminal e escreva:

rails new <project_name> -d mysql
 25
Author: Abhinav, 2013-07-17 18:23:17

Se ainda não criou o seu aplicativo, basta ir ao cmd (para windows) ou terminal (Para linux / unix) e digitar o seguinte comando para criar uma aplicação de rails com base de dados mysql:

$rails new <your_app_name> -d mysql

Funciona para qualquer coisa acima dos carris versão 3. Se você já criou seu aplicativo, então você pode fazer uma das duas seguintes coisas:
  1. crie uma aplicação outro nome com base de dados mysql, vá para cd outro nome /config / e copie a base de dados.ficheiro yml desta nova aplicação. Cola - o na base de dados.yml da aplicação your_ app_name. Mas certifique-se de alterar os nomes da base de dados e definir o nome de utilizador/senha da sua base de dados de acordo com a base de dados.ficheiro yml depois de o fazer.

Ou

  1. vá ao cd your_ app_name /config / e abra a base de dados.yml. Mudar o nome para:

Desenvolvimento:
adaptador: mysql2
base de dados: DB_ nome_ nome
utilizador: root
senha:
hospedar: localhost
socket: /tmp / mysql.sock

Além disso, remova gem 'sqlite3' do seu ficheiro Gemfile e adicione a gem 'mysql2'

 22
Author: Drake Mandin, 2014-06-23 11:47:55

Se estiver a utilizar Carris 3 ou maior versão

rails new your_project_name -d mysql

Se tiver a versão anterior

rails new -d mysql your_project_name
Por isso, antes de criar o seu projecto, tem de encontrar a versão dos carris. que você pode encontrar por
rails -v
 13
Author: Coder, 2012-05-10 08:43:51
rails -d mysql ProjectName
 12
Author: huacnlee, 2009-04-27 06:28:31
rails new <project_name> -d mysql

Ou

rails new projectname

Alterações na configuração / base de dados.yml

development:
  adapter: mysql2
  database: db_name_name
  username: root
  password:
  host: localhost
  socket: /tmp/mysql.sock
 11
Author: vijay chouhan, 2012-06-21 14:17:00

Criar uma aplicação com a opção-d

rails new AppName -d mysql
 11
Author: Dipali Nagrale, 2013-01-21 13:49:58
$ rails --help 

É sempre o teu melhor amigo

Utilização:

$ rails new APP_PATH[options]

Note também que as opções devem ser dadas após o nome da aplicação

Rails and mysql
$ rails new project_name -d mysql

Carris e postgresql

$ rails new project_name -d postgresql
 9
Author: George Bellos, 2011-11-18 15:05:43

Deve usar o switch-D em vez de-d porque irá gerar duas aplicações 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)

Em alternativa, basta usar a opção --database.

 9
Author: Marthinus A. Botha, 2012-03-29 08:32:17

Vai para a consola dos carris e escreve:

rails new YOURAPPNAME -d mysql
 7
Author: Amarpreet Jethra, 2017-03-14 06:49:24

Nos carris 3, podes fazer

$rails new projectname --database=mysql
 6
Author: andy318, 2012-05-10 08:42:53

Se estiver a criar uma nova aplicação de Carris, poderá definir a base de dados usando o botão-d como este:

rails -d mysql myapp

É sempre fácil mudar a sua base de dados mais tarde, porém, e usar o sqlite é realmente mais fácil se estiver a desenvolver-se num Mac.

 6
Author: James Avery, 2012-05-10 08:44:14

Sobre um novo projecto, easy peasy:

rails new your_new_project_name -d mysql
No projecto existente, é mais complicado. Isso deu-me uma série de questões sobre os projectos de Carris existentes. Este tipo de trabalho 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 
 3
Author: Riccardo, 2018-02-08 21:45:57

Primeiro certifique-se que o mysql gem está instalado, caso contrário? do que escrever o seguinte comando na sua consola

gem install mysql2

Than create new rails app and set mysql database as default database by typing follow command in your console

rails new app-name -d mysql
 2
Author: Shabbir, 2018-01-14 14:48:22

Usar o seguinte comando para criar uma aplicação nova para a API com a base de dados mysql

rails new <appname> --api -d mysql


  adapter: mysql2
  encoding: utf8
  pool: 5
  username: root
  password: 
  socket: /var/run/mysqld/mysqld.sock
 0
Author: Dinesh Vaitage, 2018-09-01 18:58:31

Base de dados.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'
 0
Author: artamonovdev, 2019-02-22 05:02:45

Primeiro deve certificar - se de que o controlador de MySQL está no seu sistema se não o Executar no seu terminal se estiver a utilizar Ubuntu ou qualquer distribuição Debian

sudo apt-get install mysql-client libmysqlclient-dev

E adicione isto ao seu Gemfile

gem 'mysql2', '~> 0.3.16'

Execute então o seu directório raiz do projecto

bundle install

Depois disso, poderá adicionar a configuração do mysql à configuração/base de dados.yml como as respostas anteriores

 0
Author: Muhammad Elbadawy, 2020-04-08 17:55:27