Создайте новое приложение Ruby on Rails, используя MySQL вместо SQLite

Я хочу создать свое приложение Rails с MySQL, потому что оно мне очень нравится. Как я могу сделать это в последней версии Rails вместо SQLite по умолчанию?

Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
132
0
148 756
19
Перейти к ответу Данный вопрос помечен как решенный

Ответы 19

Обычно вы создаете новое приложение Rails, используя

rails ProjectName

Чтобы использовать MySQL, используйте

rails new ProjectName -d mysql

Если вы создаете новое приложение rails, вы можете установить базу данных с помощью переключателя -d следующим образом:

rails -d mysql myapp

Однако позже всегда легко переключить вашу базу данных, а использовать sqlite действительно проще, если вы разрабатываете на Mac.

Ответ принят как подходящий

Если у вас уже есть проект 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 (при использовании jruby).

Это полезно; поскольку другие ответы просто используют генератор. Этот ответ работает для добавления MySQL в приложение после того, как оно уже было создано, либо для замены существующей (например, SQLite) БД, либо для добавления вторичной базы данных. Кроме того, mysql2 в наши дни является жемчужиной для Rails.

rcd 06.01.2014 01:27

вам также придется обновить Gemfile; удалить gem 'sqlite3' и добавить gem 'mysql2'

RGB 23.01.2014 19:05

rails -d mysql ProjectName

Для Rails 3 вы можете использовать эту команду для создания нового проекта с использованием mysql:

$ rails new projectname -d mysql

В Rails 3 вы могли сделать

$rails new projectname --database=mysql

Если вы используете rails 3 или более поздней версии

rails new your_project_name -d mysql

если у вас более ранняя версия

rails new -d mysql your_project_name

Поэтому, прежде чем создавать свой проект, вам нужно найти версию rails. что вы можете найти

rails -v

$ 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 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 new <project_name> -d mysql

Создать приложение с параметром -d

rails new AppName -d mysql

Если вы еще не создали свое приложение, просто перейдите в cmd (для Windows) или в терминал (для linux / unix) и введите следующую команду, чтобы создать приложение rails с базой данных mysql:

$rails new <your_app_name> -d mysql

Он работает для всего, что выше rails версии 3. Если вы уже создали свое приложение, вы можете выполнить одно из двух следующих действий:

  1. Создайте приложение другое имя с базой данных mysql, перейдите на компакт-диск другое имя / config / и скопируйте файл database.yml из этого нового приложения. Вставьте его в database.yml приложения ваше_имя_приложения. Но не забудьте после этого изменить имена базы данных и установить имя пользователя / пароль для вашей базы данных в файле database.yml соответственно.

ИЛИ ЖЕ

  1. Перейдите в cd ваше_имя_приложения / config / и откройте database.yml. Переименуйте следующим образом:

разработка:
адаптер: mysql2
база данных: db_name_name
имя пользователя: root
пароль:
хост: localhost
сокет: /tmp/mysql.sock

Кроме того, удалите гем sqlite3 из своего Gemfile и добавьте гем mysql2.

Просто зайдите в консоль rails и введите:

rails new YOURAPPNAME -d mysql

Сначала убедитесь, что установлен mysql gem, если нет? чем введите следующую команду в консоли

gem install mysql2

Затем создайте новое приложение rails и установите базу данных mysql в качестве базы данных по умолчанию, набрав следующую команду в консоли

rails new app-name -d mysql

вместо этого вы хотите добавить гем в Gemfile.

Riccardo 09.02.2018 00:42

В новом проекте easy peasy:

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 

Используйте следующую команду для создания нового приложения для API с базой данных 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'

вы сначала должны убедиться, что драйвер MySQL находится в вашей системе, если вы не запускаете его на своем терминале, если вы используете Ubuntu или любой дистрибутив Debian.

sudo apt-get install mysql-client libmysqlclient-dev

и добавьте это в свой Gemfile

gem 'mysql2', '~> 0.3.16'

затем запустите в корневом каталоге проекта

bundle install

после этого вы можете добавить конфигурацию mysql в config / database.yml как предыдущие ответы

Другие вопросы по теме