SQLite के बजाय MySQL का उपयोग करके रेल अनुप्रयोग पर एक नई रूबी बनाएं


130

मैं MySQL के साथ अपने रेल एप्लिकेशन बनाना चाहता हूं, क्योंकि मुझे यह बहुत पसंद है। मैं डिफ़ॉल्ट SQLite के बजाय रेल के नवीनतम संस्करण में कैसे कर सकता हूं?

जवाबों:


140

यदि आपके पास पहले से ही एक रेल परियोजना है, तो config/database.ymlफ़ाइल को एडॉप्टर में बदलें mysqlऔर सुनिश्चित करें कि आप एक मान्य उपयोगकर्ता नाम और पासवर्ड निर्दिष्ट करें, और वैकल्पिक रूप से, एक सॉकेट:

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

इसके बाद, सुनिश्चित करें कि आप mysql2 या activerecord-jdbcmysql- अडैप्टर (यदि जुआरी का उपयोग कर रहे हैं) को शामिल करने के लिए अपने जेमफाइल को संपादित करें।


2
यह सहायक है; अन्य उत्तरों के रूप में बस जनरेटर का उपयोग करें। यह उत्तर MySQL को पहले से ही बनाए जाने के बाद किसी ऐप में जोड़ने के लिए काम करता है, या तो एक मौजूदा (उदाहरण के लिए SQLite) DB को बदलने या एक द्वितीयक डेटाबेस जोड़ने के लिए। इसके अलावा, mysql2 रेल के लिए इन दिनों गो-रत्न प्रतीत होता है।
rcd

13
आपको Gemfile को भी अपडेट करना होगा; निकालें gem 'sqlite3'और जोड़ेंgem 'mysql2'
RGB

262

आम तौर पर, आप एक नया रेल ऐप बनाकर उपयोग करेंगे

rails ProjectName

MySQL का उपयोग करने के लिए, का उपयोग करें

rails new ProjectName -d mysql

56

रेल 3 के लिए आप mysql का उपयोग करके एक नई परियोजना बनाने के लिए इस कमांड का उपयोग कर सकते हैं:

$ rails new projectname -d mysql


22

यदि आपने अपना ऐप अभी तक नहीं बनाया है, तो बस cmd (विंडोज़ के लिए) या टर्मिनल (लिनक्स / यूनिक्स के लिए) पर जाएं और mysql डेटाबेस के साथ रेल एप्लिकेशन बनाने के लिए निम्न कमांड टाइप करें:

$rails new <your_app_name> -d mysql

यह रेल संस्करण 3 से ऊपर की किसी भी चीज़ के लिए काम करता है। 3. यदि आपने अपना ऐप पहले ही बना लिया है, तो आप निम्न 2 में से एक काम कर सकते हैं:

  1. Mysql डेटाबेस के साथ एक और_नाम ऐप बनाएं , cd एक और_name / config / पर जाएं और इस नए ऐप से database.yml फ़ाइल को कॉपी करें। इसे अपने_app_name एप्लिकेशन के डेटाबेस में डालें । लेकिन डेटाबेस के नामों को बदलना सुनिश्चित करें और ऐसा करने के बाद अपने डेटाबेस के उपयोगकर्ता नाम / पासवर्ड को डेटाबेस के अनुसार सेट करें। ऐसा करने के बाद।

या

  1. सीडी पर जाएं your_app_name / config / और खुले database.yml। निम्नलिखित के रूप में नाम बदलें:

विकास:
एडाप्टर: mysql2
डेटाबेस: db_name_name
उपयोगकर्ता नाम: रूट
पासवर्ड:
होस्ट: स्थानीय होस्ट
सॉकेट: /tmp/mysql.sock

इसके अलावा, अपने 'Gemfile' से 'sqlite3' मणि निकालें और 'mysql2' मणि जोड़ें


13

यदि आप रेल 3 या अधिक संस्करण का उपयोग कर रहे हैं

rails new your_project_name -d mysql

यदि आपके पास पहले संस्करण है

rails new -d mysql your_project_name

इससे पहले कि आप अपना प्रोजेक्ट बनाएं, आपको रेल संस्करण खोजने की जरूरत है। जिसे आप पा सकते हैं

rails -v


11
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


9
$ rails --help 

हमेशा आपका सबसे अच्छा दोस्त है

उपयोग:

$ rails new APP_PATH[options]

यह भी ध्यान दें कि आवेदन नाम के बाद विकल्प दिए जाने चाहिए

रेल और mysql

$ rails new project_name -d mysql

रेल और पोस्टग्रैक्स्ल

$ rails new project_name -d postgresql

8

आपको -d के बजाय स्विच -D का उपयोग करना चाहिए क्योंकि यह बिना किसी दस्तावेज़ फ़ोल्डर वाले दो ऐप्स और mysql उत्पन्न करेगा।

  rails -D mysql project_name  (less than version 3)

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

वैकल्पिक रूप से आप सिर्फ --databaseविकल्प का उपयोग करते हैं ।



6

रेल 3 में, आप कर सकते हैं

$rails new projectname --database=mysql

6

यदि आप एक नया रेल एप्लिकेशन बना रहे हैं, तो आप इस तरह -d स्विच का उपयोग करके डेटाबेस सेट कर सकते हैं:

rails -d mysql myapp

अपने डेटाबेस को बाद में स्विच करना हमेशा आसान होता है, और यदि आप मैक पर विकास कर रहे हैं तो वास्तव में साइक्लाइट का उपयोग करना आसान है।


3

नई परियोजना पर, आसान मटर:

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 

2

पहले सुनिश्चित करें कि mysql रत्न स्थापित है, यदि नहीं? अपने कंसोल में निम्न कमांड टाइप करें

gem install mysql2

अपने कंसोल में निम्न कमांड टाइप करके नए रेल एप्लिकेशन बनाएं और mysql डेटाबेस को डिफ़ॉल्ट डेटाबेस के रूप में सेट करें

rails new app-name -d mysql

1
आप इसके बजाय मणि को Gemfile में जोड़ना चाहते हैं।
रिकार्डो

0

Mysql डेटाबेस के साथ API के लिए नया ऐप बनाने के लिए निम्न कमांड का उपयोग करें

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

रत्न :

# Use mysql as the database for Active Record
gem 'mysql2', '>= 0.4.4', '< 0.6.0'

0

आपको पहले यह सुनिश्चित करना चाहिए कि यदि आप उबंटू या किसी डेबियन डिस्ट्रो का उपयोग कर रहे हैं तो MySQL ड्राइवर आपके सिस्टम पर नहीं है।

sudo apt-get install mysql-client libmysqlclient-dev

और इसे अपने Gemfile में जोड़ें

gem 'mysql2', '~> 0.3.16'

फिर परियोजना की अपनी मूल निर्देशिका में चलाएं

bundle install

उसके बाद आप पिछले उत्तरों के रूप में mysql config to config / database.yml जोड़ सकते हैं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.