Pergunta

Eu quero criar a minha aplicação Rails com o MySQL, porque eu gosto tanto.Como posso fazer isso na mais recente versão do Rails, em vez do padrão SQLite?

Foi útil?

Solução

Se você já tem o rails projeto, alterar o adaptador no config/database.yml para arquivo mysql e certifique-se de que você especificar um nome de utilizador válido e palavra-passe e, opcionalmente, um socket:

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

De seguida, certifique-se de editar o seu Gemfile para incluir o mysql2 ou o activerecord-jdbcmysql-adaptador (se utilizar o jruby).

Outras dicas

Normalmente, você deve criar um novo aplicativo usando Rails

rails ProjectName

A utilização do MySQL, uso

rails new ProjectName -d mysql

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

$ rails new projectname -d mysql

Vá para o terminal e escreva:

rails new <project_name> -d mysql

Se você não tiver criado o seu aplicativo ainda, basta ir ao cmd(para windows) ou terminal(linux/unix) e digite o seguinte comando para criar uma aplicação rails com banco de dados mysql:

$rails new <your_app_name> -d mysql

Ele funciona para qualquer coisa acima de trilhos versão 3.Se você já criou o seu aplicativo e, em seguida, você pode fazer um dos 2 seguintes coisas:

  1. Criar um another_name aplicativo com banco de dados mysql, vá para cd another_name/config/ e copie o banco de dados.yml arquivo deste novo aplicativo.Cole-o no banco de dados.yml de your_app_name app.Mas certifique-se de alterar os nomes de banco de dados e definir um nome de utilizador/palavra-passe da base de dados de acordo com o banco de dados.yml arquivo depois de fazê-lo.

OU

  1. Ir para cd your_app_name/config/ e abra o banco de dados.yml.Mude o nome conforme a seguir:

desenvolvimento:
adaptador:mysql2
banco de dados:db_name_name
nome de usuário:raiz
palavra-passe:
host:localhost
soquete:/tmp/mysql.meia

Além disso, remover gem 'sqlite3' a partir de seu Gemfile e adicionar a gem 'mysql2'

Se você estiver usando o rails 3 ou superior versão

rails new your_project_name -d mysql

se você tiver uma versão anterior

rails new -d mysql your_project_name

Então, antes de você criar o seu projeto, você precisa encontrar os trilhos da versão.que você pode encontrar por

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

OU

rails new projectname

Alterações no config/banco de dados.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]

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

rails e mysql

$ rails new project_name -d mysql

rails e postgresql

$ rails new project_name -d postgresql

Você deve usar a opção -D em vez de d, pois isso vai gerar dois aplicativos e mysql sem documentação pastas.

  rails -D mysql project_name  (less than version 3)

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

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

Basta ir para o rails console e digite:

rails new YOURAPPNAME -d mysql

No Rails 3, você pode fazer

$rails new projectname --database=mysql

Se você estiver criando uma nova aplicação rails você pode definir o banco de dados usando a opção-d, como este:

rails -d mysql myapp

É sempre fácil mudar o seu banco de dados mais tarde, porém, e usando sqlite é realmente mais fácil se você estiver desenvolvendo em um Mac.

No novo projeto, peasy fácil:

rails new your_new_project_name -d mysql

No projeto existente, definitivamente complicado.Isso me deu um certo número de questões existentes no rails projetos.Este tipo de obras, 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 certifique-se de que a gem do mysql está instalado, se não?que tipo de comando a seguir em seu console

gem install mysql2

Do que criar novos trilhos aplicativo e definir banco de dados mysql como banco de dados padrão digitando o seguinte comando no console

rails new app-name -d mysql

Use o seguinte comando para criar novo aplicativo para a API de 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

de banco 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'
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top