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?
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:
Halihazırda bir rails projeniz varsa, config/database.yml
dosyadaki adaptörü olarak değiştirin ve mysql
geç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.
gem 'sqlite3'
ve eklegem 'mysql2'
Normalde, kullanarak yeni bir Rails uygulaması oluşturursunuz.
rails ProjectName
MySQL kullanmak için kullanın
rails new ProjectName -d mysql
Rails 3 için mysql kullanarak yeni bir proje oluşturmak için bu komutu kullanabilirsiniz:
$ rails new projectname -d mysql
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:
VEYA
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
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
$ 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
-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 --database
seçeneği kullanırsınız .
Raylar konsoluna gidin ve şunu yazın:
rails new YOURAPPNAME -d mysql
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.
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
Ö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
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
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'
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.