قم بإنشاء تطبيق Ruby on Rails جديد باستخدام MySQL بدلاً من SQLite
-
08-06-2019 - |
سؤال
أريد إنشاء تطبيق Rails الخاص بي باستخدام MySQL، لأنني أحبه كثيرًا.كيف يمكنني القيام بذلك في أحدث إصدار من Rails بدلاً من SQLite الافتراضي؟
المحلول
إذا كان لديك بالفعل مشروع Rails، فقم بتغيير المحول في ملف config/database.yml
ملف ل mysql
وتأكد من تحديد اسم مستخدم وكلمة مرور صالحين، ومقبس اختياريًا:
development:
adapter: mysql2
database: db_name_dev
username: koploper
password:
host: localhost
socket: /tmp/mysql.sock
بعد ذلك، تأكد من تحرير ملف Gemfile الخاص بك ليشمل mysql2 أو activerecord-jdbcmysql-adapter (في حالة استخدام jruby).
نصائح أخرى
عادةً، يمكنك إنشاء تطبيق Rails جديد باستخدام
rails ProjectName
لاستخدام MySQL، استخدم
rails new ProjectName -d mysql
بالنسبة لـ Rails 3، يمكنك استخدام هذا الأمر لإنشاء مشروع جديد باستخدام mysql:
$ rails new projectname -d mysql
انتقل إلى المحطة واكتب:
rails new <project_name> -d mysql
إذا لم تكن قد أنشأت تطبيقك بعد، فما عليك سوى الانتقال إلى cmd (لنظام Windows) أو Terminal (لنظام Linux/unix) واكتب الأمر التالي لإنشاء تطبيق Rails باستخدام قاعدة بيانات MySQL:
$rails new <your_app_name> -d mysql
إنه يعمل مع أي شيء أعلى من الإصدار 3 من Rails.إذا كنت قد أنشأت تطبيقك بالفعل، فيمكنك القيام بأحد الأمرين التاليين:
- إنشاء أسم آخر التطبيق مع قاعدة بيانات MySQL، انتقل إلى القرص المضغوط أسم آخر/config/ وانسخ ملف data.yml من هذا التطبيق الجديد.قم بلصقه في قاعدة البيانات.yml الخاصة بـ your_app_name برنامج.ولكن تأكد من تغيير أسماء قاعدة البيانات وتعيين اسم المستخدم/كلمة المرور لقاعدة البيانات الخاصة بك وفقًا لذلك في ملف قاعدة البيانات.yml بعد القيام بذلك.
أو
- اذهب إلى القرص المضغوط your_app_name/config/ وافتح ملف data.yml.إعادة التسمية على النحو التالي:
تطوير:
مشترك كهربائي:mysql2
قاعدة البيانات:db_name_name
اسم المستخدم:جذر
كلمة المرور:
يستضيف:مضيف محلي
قابس كهرباء:/tmp/mysql.sock
علاوة على ذلك، قم بإزالة الجوهرة "sqlite3" من ملف Gemfile الخاص بك وأضف الجوهرة "mysql2"
إذا كنت تستخدم Rails 3 أو إصدار أحدث
rails new your_project_name -d mysql
إذا كان لديك إصدار سابق
rails new -d mysql your_project_name
لذا، قبل إنشاء مشروعك، عليك العثور على إصدار Rails.التي يمكنك العثور عليها
rails -v
rails -d mysql ProjectName
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
إنشاء تطبيق باستخدام الخيار -d
rails new AppName -d mysql
$ rails --help
هو دائما أفضل صديق لك
الاستخدام:
$ rails new APP_PATH[options]
لاحظ أيضًا أنه يجب إعطاء الخيارات بعد اسم التطبيق
القضبان و MySQL
$ rails new project_name -d mysql
القضبان وpostgresql
$ 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 واكتب:
rails new YOURAPPNAME -d mysql
في Rails 3، يمكنك فعل ذلك
$rails new projectname --database=mysql
إذا كنت تقوم بإنشاء تطبيق Rails جديد، فيمكنك ضبط قاعدة البيانات باستخدام المفتاح -d مثل هذا:
rails -d mysql myapp
من السهل دائمًا تبديل قاعدة البيانات الخاصة بك لاحقًا، كما أن استخدام sqlite يكون أسهل حقًا إذا كنت تقوم بالتطوير على جهاز Mac.
في مشروع جديد، سهل للغاية:
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، إذا لم يكن الأمر كذلك؟من كتابة الأمر التالي في وحدة التحكم الخاصة بك
gem install mysql2
ثم قم بإنشاء تطبيق Rails جديد وقم بتعيين قاعدة بيانات MySQL كقاعدة بيانات افتراضية عن طريق كتابة الأمر التالي في وحدة التحكم الخاصة بك
rails new app-name -d mysql
استخدم الأمر التالي لإنشاء تطبيق جديد لواجهة برمجة التطبيقات (API) باستخدام قاعدة بيانات MySQL
rails new <appname> --api -d mysql
adapter: mysql2
encoding: utf8
pool: 5
username: root
password:
socket: /var/run/mysqld/mysqld.sock
قاعدة البيانات.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'