Как установить MySQL в качестве базы данных по умолчанию в Rails 3? - PullRequest
13 голосов
/ 01 сентября 2010

Я начал использовать Rails 2 в апреле прошлого года, но прекратил работу в июне, потому что думал, что изучение его после выпуска Rails 3 будет более практичным, поскольку многие из них были полностью реорганизованы и реструктурированы. Раньше я работал с Ubuntu 10.04 (с SQLite3 в качестве базы данных по умолчанию), но теперь я использую Windows 7 и MySQL 5. Я уже установил адаптер gem для MySQL, но для его использования мне все еще нужно настроить database.yml. Спасибо.

Ответы [ 4 ]

25 голосов
/ 01 сентября 2010

С точки зрения конфигурации базы данных между Rails 2 и 3 ничего особо не изменилось, за исключением того, как вы загружаете свой драйвер MySQL.Раньше это делалось в config/environment.rb, но теперь это делается в Gemfile:

gem 'mysql'

Файл по умолчанию config/database.yml настроен на SQLite, но вы можете легко изменить его на MySQL.Общая версия выглядит следующим образом:

defaults: &defaults
  adapter: mysql
  username: localdev
  password: mylocaldevpasswordwhateveritis
  host: localhost

development:
  <<: *defaults
  database: project_dev

test:
  <<: *defaults
  database: project_test

Это строка объявления adapter, которая устанавливает используемый драйвер.

7 голосов
/ 29 ноября 2010

В ответе tadman используйте gem 'mysql2' для rails 3, так как rails 3 теперь использует новый адаптер mysql !!

3 голосов
/ 11 февраля 2011

Вы можете изменить rails по умолчанию на MySql при создании нового приложения, но вы должны отредактировать строку в вашей установке rails. Вам придется вносить изменения в каждую версию и каждый раз, когда вы обновляете самоцвет rails.

Я использую Ruby-Enterprise. Вот что я делаю:

В файле (где 1.8 - версия ruby, а 3.0.4 - версия rails):

/opt/ruby-enterprise/lib/ruby/gems/1.8/gems/railties-3.0.4/lib/rails/generators/rails/app/app_generator.rb

Редактировать: В rails-3.1.0-rc1 файл выглядит так:

gems/railties-3.1.0.rc1/lib/rails/generators/app_base.rb

Поиск по этой строке:

class_option :database, :type => :string, :aliases => "-d", :default => "sqlite3",

Измените "sqlite3" на "mysql".

class_option :database, :type => :string, :aliases => "-d", :default => "mysql",

Так что вместо того, чтобы делать:

rails new application_name -d mysql

Я могу просто сделать (а для database.yml и Gemfiles настроен гем mysql2):

rails new application_name

Предполагается, что у вас уже установлен правильный драгоценный камень mysql2. Кроме того, я делал это только с момента выхода Rails 3. Вероятно, это похоже на предыдущие версии. Опять же, каждый раз, когда вы обновляете Rails, вам придется находить и редактировать этот файл.

0 голосов
/ 14 апреля 2014

Начиная с Rails 3.2, вы можете определить файл .railsrc с пользовательскими параметрами командной строки, которые всегда будут применяться к rails new

Итак, если вы создадите файл с именем .railsrc и поместите его в свой домашний каталогС таким содержимым -d mysql это сделает MySQL вашей базой данных по умолчанию.Вы можете поместить туда любой из параметров командной строки (включая шаблоны приложений , которые просто потрясающие!)

Запустите rails new --help из командной строки, чтобы увидеть все ваши параметры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...