2010-04-20 4 views
6

Dans CakePHP, je peux spécifier un préfixe dans ma configuration de base de données, c'est-à-dire "so_", de sorte que chaque modèle recherche sa table sous ce préfixe.Spécifier un préfixe de table pour MySQL

Est-ce que quelque chose de similaire est également possible dans Rails? Autrement dit, plusieurs programmes peuvent-ils partager une base de données?

Répondre

12

Vous pouvez essayer ce qui suit dans environments.rb: Dans la section de configuration, ajoutez le code suivant

config.active_record.table_name_prefix = "so_" 
+0

Fonctionne parfaitement à partir de la version 2.1.2. – blinry

+0

Il apparaît dans 5.0 il y a 'config/environments/development.rb',' production.rb' et 'test.rb'. – akostadinov

0

Vous pouvez spécifier facilement votre propre nom de table pour chaque modèle avec la méthode set_table_name:

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

Mais vous devez le faire pour chaque modèle, je ne savez pas comment d'une option de configuration globale.

+0

Puis-je être sûr que le base de données n'est pas abandonnée quand je fais fantaisie 'rake db'-choses? – blinry

+0

Tant que vous ne faites pas de "rake db: reset" ou de "rake db: migrate: reset", la base de données ne sera pas supprimée. La meilleure façon d'éviter une suppression de base de données involontaire est de ne pas donner le droit à l'utilisateur en question. – Aurril

0

constante RAILS_ENV est obsolète depuis la version 3.0, il est maintenant Rails.env

Questions connexes