views:

152

answers:

2

In CakePHP, I can specify a prefix in my database configuration, f.e. "so_", so that every model looks for its table under this prefix.

Is something similar possible in Rails, too? That is, can several programs share one database?

A: 

You can easily specify your own table name for each model with the set_table_name method:

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

But you have to do it for each model, I don´t know of any global configuration option.

auralbee
Can I be sure that the database isn't dropped when I do fancy `rake db`-things?
blinry
As long as you don't do a "rake db:reset" or "rake db:migrate:reset" the database won't be dropped.Best way to prevent unintended database dropping is to not give the right to the user in question.
Aurril
+1  A: 

You might try the following in environments.rb: In the config section add the following code

config.active_record.table_name_prefix = "so_"
Aurril
Works perfectly as of version 2.1.2.
blinry