2010-04-20 7 views
6

In CakePHP kann ich ein Präfix in meiner Datenbankkonfiguration angeben, d. H. "So_", so dass jedes Modell nach seiner Tabelle unter diesem Präfix sucht.Angeben eines Tabellenpräfix für MySQL

Ist in Rails etwas Ähnliches möglich? Das heißt, können mehrere Programme eine Datenbank gemeinsam nutzen?

Antwort

12

Sie könnten versuchen, die folgenden in environments.rb: In der Config-Abschnitt den folgenden Code

config.active_record.table_name_prefix = "so_" 
+0

Funktioniert perfekt ab Version 2.1.2. – blinry

+0

In 5.0 erscheint 'config/environments/development.rb',' production.rb' und 'test.rb'. – akostadinov

0

Sie können ganz einfach Ihren eigenen Tabellennamen mit der set_table_name Methode für jedes Modell angeben:

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

Aber Sie haben es für jedes Modell zu tun, dont ich von jeder globalen Konfigurationsoption kennen.

+0

Kann ich sicher sein, dass die Die Datenbank wird nicht gelöscht, wenn ich 'Rake db'-Dinge? – blinry

+0

Solange Sie kein "Rake db: reset" oder "Rake db: migrate: reset" ausführen, wird die Datenbank nicht gelöscht. Die beste Methode, um das unbeabsichtigte Löschen von Datenbanken zu verhindern, besteht darin, dem betreffenden Benutzer kein Recht zu geben. – Aurril

0

RAILS_ENV konstant seit Version 3.0 ist veraltet, jetzt ist es Rails.env

Verwandte Themen