SQLite yerine MySQL kullanarak yeni bir Ruby on Rails uygulaması oluşturun


130

Rails uygulamamı MySQL ile oluşturmak istiyorum çünkü onu çok seviyorum. Bunu varsayılan SQLite yerine Rails'in en son sürümünde nasıl yapabilirim?

Yanıtlar:


140

Halihazırda bir rails projeniz varsa, config/database.ymldosyadaki adaptörü olarak değiştirin ve mysqlgeçerli bir kullanıcı adı ve parola ve isteğe bağlı olarak bir soket belirttiğinizden emin olun:

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

Ardından, Gemfile'ınızı mysql2 veya activerecord-jdbcmysql-adaptörünü (jruby kullanıyorsanız) içerecek şekilde düzenlediğinizden emin olun.


2
Bu yararlıdır; diğer cevaplar sadece oluşturucuyu kullanır. Bu cevap, MySQL'i bir uygulamaya zaten oluşturulduktan sonra eklemek için, ya mevcut (örneğin SQLite) DB'yi değiştirmek ya da ikincil bir veritabanı eklemek için işe yarar. Ayrıca mysql2, bu günlerde Rails için vazgeçilmez bir mücevher gibi görünüyor.
rcd

13
ayrıca Gemfile'ı güncellemeniz gerekir; kaldır gem 'sqlite3've eklegem 'mysql2'
RGB

262

Normalde, kullanarak yeni bir Rails uygulaması oluşturursunuz.

rails ProjectName

MySQL kullanmak için kullanın

rails new ProjectName -d mysql

56

Rails 3 için mysql kullanarak yeni bir proje oluşturmak için bu komutu kullanabilirsiniz:

$ rails new projectname -d mysql

24

Terminale gidin ve şunu yazın:

rails new <project_name> -d mysql

22

Henüz uygulamanızı oluşturmadıysanız, mysql veritabanı ile bir ray uygulaması oluşturmak için cmd'ye (Windows için) veya terminale (linux / unix için) gidin ve aşağıdaki komutu yazın:

$rails new <your_app_name> -d mysql

Rails sürüm 3'ün üzerindeki her şey için çalışır. Uygulamanızı zaten oluşturduysanız, aşağıdaki 2 şeyden birini yapabilirsiniz:

  1. Mysql veritabanı ile bir another_name uygulaması oluşturun , cd another_name / config / gidin ve bu yeni uygulamadan database.yml dosyasını kopyalayın. Uygulama_adı uygulamanızın database.yml dosyasına yapıştırın . Ancak bunu yaptıktan sonra veritabanı adlarını değiştirdiğinizden ve veritabanınızın kullanıcı adını / şifresini buna göre veritabanı.yml dosyasında belirlediğinizden emin olun.

VEYA

  1. Cd your_app_name / config / gidin ve database.yml dosyasını açın. Aşağıdaki gibi yeniden adlandırın:

geliştirme:
adaptör: mysql2
veritabanı: db_name_name
kullanıcı adı: kök
şifre:
ana bilgisayar: localhost
soket: /tmp/mysql.sock

Dahası, Gemfile'ınızdan gem 'sqlite3'ü kaldırın ve' mysql2 'mücevherini ekleyin


13

Rails 3 veya daha yüksek versiyon kullanıyorsanız

rails new your_project_name -d mysql

daha eski bir sürüme sahipseniz

rails new -d mysql your_project_name

Yani projenizi oluşturmadan önce ray versiyonunu bulmanız gerekir. bulabileceğin

rails -v


11
rails new <project_name> -d mysql

VEYA

rails new projectname

Config / database.yml dosyasındaki değişiklikler

development:
  adapter: mysql2
  database: db_name_name
  username: root
  password:
  host: localhost
  socket: /tmp/mysql.sock


9
$ rails --help 

her zaman senin en iyi arkadaşın

kullanımı:

$ rails new APP_PATH[options]

ayrıca seçeneklerin uygulama adından sonra verilmesi gerektiğini unutmayın.

raylar ve mysql

$ rails new project_name -d mysql

raylar ve postgresql

$ rails new project_name -d postgresql

8

-D yerine -D anahtarını kullanmalısınız çünkü iki uygulama ve mysql dokümantasyon klasörü oluşturmayacaktır.

  rails -D mysql project_name  (less than version 3)

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

Alternatif olarak sadece --databaseseçeneği kullanırsınız .



6

Rails 3'te şunları yapabilirsiniz:

$rails new projectname --database=mysql

6

Yeni bir ray uygulaması oluşturuyorsanız, veritabanını -d anahtarını kullanarak şu şekilde ayarlayabilirsiniz:

rails -d mysql myapp

Veritabanınızı daha sonra değiştirmek her zaman kolaydır ve bir Mac üzerinde geliştirme yapıyorsanız sqlite kullanmak gerçekten daha kolaydır.


3

Yeni projede kolay peasy:

rails new your_new_project_name -d mysql

Mevcut projede, kesinlikle daha zor. Bu bana mevcut raylı projeler hakkında bir takım sorunlar verdi. Bu tür benim için çalışıyor:

# 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 

2

Öncelikle mysql gem'in kurulu olduğundan emin olun, yoksa? Konsolunuzda aşağıdaki komutu yazmaktansa

gem install mysql2

Konsolunuzda aşağıdaki komutu yazarak yeni raylar uygulaması oluşturun ve mysql veritabanını varsayılan veritabanı olarak ayarlayın

rails new app-name -d mysql

1
bunun yerine gem'i Gemfile'a eklemek istersiniz.
Riccardo

0

Mysql veritabanı ile API için yeni uygulama oluşturmak için aşağıdaki komutu kullanın

rails new <appname> --api -d mysql


  adapter: mysql2
  encoding: utf8
  pool: 5
  username: root
  password: 
  socket: /var/run/mysqld/mysqld.sock

0

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'

0

Ubuntu veya herhangi bir Debian dağıtımını kullanıyorsanız, bunu terminalinizde çalıştırmıyorsanız, öncelikle MySQL sürücüsünün sisteminizde olduğundan emin olmalısınız.

sudo apt-get install mysql-client libmysqlclient-dev

ve bunu Gemfile'ınıza ekleyin

gem 'mysql2', '~> 0.3.16'

daha sonra projenin kök dizininde çalıştırın

bundle install

bundan sonra mysql yapılandırmasını önceki yanıtlar olarak config / database.yml dosyasına ekleyebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.