2010-04-20 94 views
6

在CakePHP中,我可以在我的数据库配置中指定一个前缀,即“so_”,以便每个模型都可以在此前缀下查找它的表。指定MySQL的表前缀

在Rails中也有类似的可能吗?也就是说,几个程序可以共享一个数据库吗?

回答

12

您可以尝试在environments.rb如下: 在配置部分添加以下代码自3.0版本

config.active_record.table_name_prefix = "so_" 
+0

从版本2.1.2完美工作。 – blinry 2010-04-20 12:13:03

+0

它出现在5.0中有'config/environments/development.rb','production.rb'和'test.rb'。 – akostadinov 2016-08-04 21:11:37

0

你可以很容易地与set_table_name方法每个模型指定自己的表名:

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

但你必须这样做,每个模型,我不知道任何全局配置选项。

+0

我可以肯定的是,当我喜欢'rake db'-things时,数据库不会被丢弃? – blinry 2010-04-20 10:54:17

+0

只要你不做“rake db:reset”或“rake db:migrate:reset”,数据库就不会被删除。 防止意外数据库丢失的最佳方法是不向有问题的用户提供权利。 – Aurril 2010-04-20 11:11:59

0

RAILS_ENV常数已过时,现在是Rails.env