Question

J'ai une application rails, où chaque utilisateur dispose d'une base de données distincte.(la prise de Joel Spolsky de conseils sur ce sujet).Je veux courir DB migrations à partir de l'application rails pour créer une nouvelle base de données et des tables pour cet utilisateur.

Quelle est la meilleure façon de le faire?

Peut-être que la db migration n'est pas la meilleure pour ce genre de chose.Merci!


Ce serait bien si elle pouvait être une automatisation complète du processus.Le processus suivant serait l'idéal.

  1. Un utilisateur s'inscrit sur notre site pour utiliser cette application web
  2. Les Migrations sont à exécuter pour créer cette base de données des utilisateurs et d'obtenir des tables de configuration correctement

Est-il un moyen de l'appel d'une tâche rake à partir d'une application ruby?

Était-ce utile?

La solution

Pour répondre à la partie de votre question, voici comment vous pouvez exécuter une tâche rake de l'intérieur des Rails de code:

require 'rake'
load 'path/to/task.rake'

Rake::Task['foo:bar:baz'].invoke

Rappelez-vous, je n'ai aucune idée de comment (ou pourquoi) vous pourriez avoir une base de données par l'utilisateur.

Autres conseils

Nous utilisons séparer les fichiers de configuration pour chaque utilisateur.Donc dans le fichier config/ dir nous aurions roo.la base de données.yml qui permettrait de se connecter à ma base de données personnelle, et je les copie sur la base de données.fichier yml qui est utilisé par les rails.

Nous avons été pensée de l'expansion de l'rails Rakefile donc, on pourrait spécifier le développeur comme une variable d'environnement, qui serait alors de sélectionner un spécfiques datbase de configuration, ce qui nous permet d'avoir une seule base de données.fichier yml.Nous n'avons pas fait ce même si, comme la méthode ci-dessus fonctionne assez bien.

En fait, j'ai découvert un bon moyen d'exécuter DB migrations à partir d'une application:

ActiveRecord::Migration.migrer("db/migrate/")

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top