2010-06-26 10 views
1

Mes rails app. utilise la base de données mysql et j'ai besoin de générer .sqlite3.databases. Est-il possible d'utiliser activerécord et rails modèles pour cela? Nous essayons maintenant d'utiliser des modèles nommés par Remote :: module mais de cette façon nous ne pouvons pas démarrer de générateurs concurrents.Rails - Génération de bases de données .sqlite3

Répondre

4

Dans vos modèles à distance, vous voulez vous connecter à une base de données distincte à l'aide #establish_connection:

# config/database.yml 
remote_development: 
    adapter: sqlite3 
    database: db/development.sqlite3 

remote_production: 
    adapter: sqlite3 
    database: /usr/local/remote/myapp.sqlite3 


# app/models/remote_model.rb 
class RemoteModel < ActiveRecord::Base 
    establish_connection "remote_#{Rails.env}" 
    self.abstract_class = true 
end 


# app/models/remote_user.rb 
class RemoteUser < RemoteModel 
end 

Notez le setter abstract_class: cela signifie que la classe en question ne dispose pas d'une table sous-jacente: il est utilisé pour fins de configuration seulement.

+0

Je dois créer différentes bases de données sqlite. Les processus de génération peuvent être simultanés. J'ai besoin de noms de bases de données dynamiques ... –

+2

establish_connection accepte aussi un Hash, donc vous pouvez dire "RemoteModel.send (: établir connection,: adapter =>" sqlite3 ",: database => Rails.root +" tmp/# {Time. to_i} .sqlite3 ") –

Questions connexes