2010-04-20 2 views
6

В CakePHP я могу указать префикс в моей конфигурации базы данных, т. Е. «So_», так что каждая модель ищет свою таблицу под этим префиксом.Укажите префикс таблицы для MySQL

Возможно ли подобное подобное в Rails? То есть, может ли несколько программ совместно использовать одну базу данных?

ответ

12

Вы можете попробовать следующее environments.rb: В разделе настроек добавьте следующий код

config.active_record.table_name_prefix = "so_" 
+0

Прекрасно работает с версией 2.1.2. – blinry

+0

В 5.0 приведено описание 'config/environment/development.rb',' production.rb' и 'test.rb'. – akostadinov

0

Вы можете легко определить собственное имя таблицы для каждой модели с помощью метода set_table_name:

class Mouse < ActiveRecord::Base 
    set_table_name "so_mice" 
end 

Но вы должны сделать это для каждой модели, я не знаю, какой-либо глобальной опции конфигурации.

+0

Могу ли я быть уверен, что база данных не отбрасывается, когда мне нравятся 'rake db'-вещи? – blinry

+0

Пока вы не выполняете «рейк-дБ: сброс» или «рейк-дБ: мигрировать: перезагрузка», база данных не будет удалена. Лучший способ предотвратить непреднамеренное выпадение базы данных - не давать права пользователю. – Aurril

0

константа RAILS_ENV является устаревшим, начиная с версии 3.0, теперь это Rails.env

 Смежные вопросы

  • Нет связанных вопросов^_^