Criar uma nova aplicação do Ruby on Rails usando o MySQL em vez do SQLite
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).
Normalmente, você criaria uma nova aplicação de Carris usando
rails ProjectName
Para utilizar MySQL, use
rails new ProjectName -d mysql
Para o Rails 3, pode usar este comando para criar um novo projecto usando o mysql:
$ rails new projectname -d mysql
Vá ao terminal e escreva:
rails new <project_name> -d mysql
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
- 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
- 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'
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
rails -d mysql ProjectName
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
Criar uma aplicação com a opção-d
rails new AppName -d mysql
$ 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
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
.
Vai para a consola dos carris e escreve:
rails new YOURAPPNAME -d mysql
Nos carris 3, podes fazer
$rails new projectname --database=mysql
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.
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
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
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
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'
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