Saya ingin membuat aplikasi Rails saya dengan MySQL, karena saya sangat menyukainya. Bagaimana saya bisa melakukannya di versi Rails terbaru alih-alih SQLite default?
Saya ingin membuat aplikasi Rails saya dengan MySQL, karena saya sangat menyukainya. Bagaimana saya bisa melakukannya di versi Rails terbaru alih-alih SQLite default?
Jawaban:
Jika Anda sudah memiliki proyek rails, ubah adaptor dalam config/database.yml
file tersebut mysql
dan pastikan Anda menentukan nama pengguna dan kata sandi yang valid, dan secara opsional, soket:
development:
adapter: mysql2
database: db_name_dev
username: koploper
password:
host: localhost
socket: /tmp/mysql.sock
Selanjutnya, pastikan Anda mengedit Gemfile Anda untuk menyertakan mysql2 atau activerecord-jdbcmysql-adapter (jika menggunakan jruby).
gem 'sqlite3'
dan tambahkangem 'mysql2'
Biasanya, Anda akan membuat aplikasi Rails baru menggunakan
rails ProjectName
Untuk menggunakan MySQL, gunakan
rails new ProjectName -d mysql
Untuk Rails 3 Anda dapat menggunakan perintah ini untuk membuat proyek baru menggunakan mysql:
$ rails new projectname -d mysql
Jika Anda belum membuat aplikasi Anda, cukup buka cmd (untuk windows) atau terminal (untuk linux / unix) dan ketik perintah berikut untuk membuat aplikasi rel dengan database mysql:
$rails new <your_app_name> -d mysql
Ini berfungsi untuk apa pun di atas versi rel 3. Jika Anda sudah membuat aplikasi, maka Anda dapat melakukan salah satu dari 2 hal berikut:
ATAU
pengembangan:
adaptor:
database mysql2 : db_name_name
nama pengguna: root
password:
host: localhost
socket: /tmp/mysql.sock
Selain itu, hapus permata 'sqlite3' dari Gemfile Anda dan tambahkan permata 'mysql2'
rails new <project_name> -d mysql
ATAU
rails new projectname
Perubahan pada config / database.yml
development:
adapter: mysql2
database: db_name_name
username: root
password:
host: localhost
socket: /tmp/mysql.sock
$ rails --help
selalu teman baikmu
pemakaian:
$ rails new APP_PATH[options]
juga perhatikan bahwa opsi harus diberikan setelah nama aplikasi
rel dan mysql
$ rails new project_name -d mysql
rel dan postgresql
$ rails new project_name -d postgresql
Anda harus menggunakan switch -D bukannya -d karena akan menghasilkan dua aplikasi dan mysql tanpa folder dokumentasi.
rails -D mysql project_name (less than version 3)
rails new project_name -D mysql (version 3 and up)
Atau Anda cukup menggunakan --database
opsi.
Cukup buka konsol rails dan ketik:
rails new YOURAPPNAME -d mysql
Jika Anda membuat aplikasi rel baru, Anda dapat mengatur database menggunakan -d switch seperti ini:
rails -d mysql myapp
Selalu mudah untuk mengganti database Anda nanti, dan menggunakan sqlite benar-benar lebih mudah jika Anda mengembangkan pada Mac.
Pada proyek baru, peasy mudah:
rails new your_new_project_name -d mysql
Pada proyek yang ada, pasti lebih rumit. Ini telah memberi saya sejumlah masalah pada proyek kereta api yang ada. Jenis bekerja dengan saya:
# 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
Pertama, pastikan permata mysql diinstal, jika tidak? daripada mengetik perintah berikut di konsol Anda
gem install mysql2
Daripada membuat aplikasi rel baru dan mengatur database mysql sebagai database default dengan mengetik perintah berikut di konsol Anda
rails new app-name -d mysql
Gunakan perintah berikut untuk membuat aplikasi baru untuk API dengan database mysql
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'
Anda pertama-tama harus memastikan bahwa driver MySQL ada di sistem Anda jika tidak menjalankan ini di terminal Anda jika Anda menggunakan Ubuntu atau distro Debian apa pun
sudo apt-get install mysql-client libmysqlclient-dev
dan tambahkan ini ke Gemfile Anda
gem 'mysql2', '~> 0.3.16'
kemudian jalankan di direktori root proyek Anda
bundle install
setelah itu Anda dapat menambahkan konfigurasi mysql ke config / database.yml sebagai jawaban sebelumnya