मैं MySQL के साथ अपने रेल एप्लिकेशन बनाना चाहता हूं, क्योंकि मुझे यह बहुत पसंद है। मैं डिफ़ॉल्ट SQLite के बजाय रेल के नवीनतम संस्करण में कैसे कर सकता हूं?
मैं MySQL के साथ अपने रेल एप्लिकेशन बनाना चाहता हूं, क्योंकि मुझे यह बहुत पसंद है। मैं डिफ़ॉल्ट SQLite के बजाय रेल के नवीनतम संस्करण में कैसे कर सकता हूं?
जवाबों:
यदि आपके पास पहले से ही एक रेल परियोजना है, तो config/database.yml
फ़ाइल को एडॉप्टर में बदलें mysql
और सुनिश्चित करें कि आप एक मान्य उपयोगकर्ता नाम और पासवर्ड निर्दिष्ट करें, और वैकल्पिक रूप से, एक सॉकेट:
development:
adapter: mysql2
database: db_name_dev
username: koploper
password:
host: localhost
socket: /tmp/mysql.sock
इसके बाद, सुनिश्चित करें कि आप mysql2 या activerecord-jdbcmysql- अडैप्टर (यदि जुआरी का उपयोग कर रहे हैं) को शामिल करने के लिए अपने जेमफाइल को संपादित करें।
gem 'sqlite3'
और जोड़ेंgem 'mysql2'
आम तौर पर, आप एक नया रेल ऐप बनाकर उपयोग करेंगे
rails ProjectName
MySQL का उपयोग करने के लिए, का उपयोग करें
rails new ProjectName -d mysql
रेल 3 के लिए आप mysql का उपयोग करके एक नई परियोजना बनाने के लिए इस कमांड का उपयोग कर सकते हैं:
$ rails new projectname -d mysql
यदि आपने अपना ऐप अभी तक नहीं बनाया है, तो बस cmd (विंडोज़ के लिए) या टर्मिनल (लिनक्स / यूनिक्स के लिए) पर जाएं और mysql डेटाबेस के साथ रेल एप्लिकेशन बनाने के लिए निम्न कमांड टाइप करें:
$rails new <your_app_name> -d mysql
यह रेल संस्करण 3 से ऊपर की किसी भी चीज़ के लिए काम करता है। 3. यदि आपने अपना ऐप पहले ही बना लिया है, तो आप निम्न 2 में से एक काम कर सकते हैं:
या
विकास:
एडाप्टर: mysql2
डेटाबेस: db_name_name
उपयोगकर्ता नाम: रूट
पासवर्ड:
होस्ट: स्थानीय होस्ट
सॉकेट: /tmp/mysql.sock
इसके अलावा, अपने 'Gemfile' से 'sqlite3' मणि निकालें और 'mysql2' मणि जोड़ें
यदि आप रेल 3 या अधिक संस्करण का उपयोग कर रहे हैं
rails new your_project_name -d mysql
यदि आपके पास पहले संस्करण है
rails new -d mysql your_project_name
इससे पहले कि आप अपना प्रोजेक्ट बनाएं, आपको रेल संस्करण खोजने की जरूरत है। जिसे आप पा सकते हैं
rails -v
rails new <project_name> -d mysql
या
rails new projectname
Config / database.yml में परिवर्तन
development:
adapter: mysql2
database: db_name_name
username: root
password:
host: localhost
socket: /tmp/mysql.sock
$ rails --help
हमेशा आपका सबसे अच्छा दोस्त है
उपयोग:
$ rails new APP_PATH[options]
यह भी ध्यान दें कि आवेदन नाम के बाद विकल्प दिए जाने चाहिए
रेल और mysql
$ rails new project_name -d mysql
रेल और पोस्टग्रैक्स्ल
$ rails new project_name -d postgresql
आपको -d के बजाय स्विच -D का उपयोग करना चाहिए क्योंकि यह बिना किसी दस्तावेज़ फ़ोल्डर वाले दो ऐप्स और mysql उत्पन्न करेगा।
rails -D mysql project_name (less than version 3)
rails new project_name -D mysql (version 3 and up)
वैकल्पिक रूप से आप सिर्फ --database
विकल्प का उपयोग करते हैं ।
बस रेल कंसोल पर जाएं और टाइप करें:
rails new YOURAPPNAME -d mysql
यदि आप एक नया रेल एप्लिकेशन बना रहे हैं, तो आप इस तरह -d स्विच का उपयोग करके डेटाबेस सेट कर सकते हैं:
rails -d mysql myapp
अपने डेटाबेस को बाद में स्विच करना हमेशा आसान होता है, और यदि आप मैक पर विकास कर रहे हैं तो वास्तव में साइक्लाइट का उपयोग करना आसान है।
नई परियोजना पर, आसान मटर:
rails new your_new_project_name -d mysql
मौजूदा परियोजना पर, निश्चित रूप से मुश्किल। इसने मुझे मौजूदा रेल परियोजनाओं पर कई मुद्दे दिए हैं। मेरे साथ इस तरह का काम करता है:
# 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
पहले सुनिश्चित करें कि mysql रत्न स्थापित है, यदि नहीं? अपने कंसोल में निम्न कमांड टाइप करें
gem install mysql2
अपने कंसोल में निम्न कमांड टाइप करके नए रेल एप्लिकेशन बनाएं और mysql डेटाबेस को डिफ़ॉल्ट डेटाबेस के रूप में सेट करें
rails new app-name -d mysql
Mysql डेटाबेस के साथ API के लिए नया ऐप बनाने के लिए निम्न कमांड का उपयोग करें
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
रत्न :
# Use mysql as the database for Active Record
gem 'mysql2', '>= 0.4.4', '< 0.6.0'
आपको पहले यह सुनिश्चित करना चाहिए कि यदि आप उबंटू या किसी डेबियन डिस्ट्रो का उपयोग कर रहे हैं तो MySQL ड्राइवर आपके सिस्टम पर नहीं है।
sudo apt-get install mysql-client libmysqlclient-dev
और इसे अपने Gemfile में जोड़ें
gem 'mysql2', '~> 0.3.16'
फिर परियोजना की अपनी मूल निर्देशिका में चलाएं
bundle install
उसके बाद आप पिछले उत्तरों के रूप में mysql config to config / database.yml जोड़ सकते हैं