Domanda

Ho un'applicazione ferroviaria in cui ogni utente ha un database separato.(seguendo il consiglio di Joel Spolsky su questo).Desidero eseguire migrazioni DB dall'applicazione rails per creare un nuovo database e tabelle per questo utente.

Qual è il modo più semplice per farlo?

Forse la migrazione del db non è la soluzione migliore per questo tipo di cose.Grazie!


Sarebbe bello se potesse essere un processo completamente automatizzato.Il seguente processo sarebbe l'ideale.

  1. Un utente si registra sul nostro sito per utilizzare questa app Web
  2. Le migrazioni vengono eseguite per creare questo database di utenti e ottenere la corretta configurazione delle tabelle

Esiste un modo per richiamare un'attività rake da un'applicazione Ruby?

È stato utile?

Soluzione

Per rispondere a parte della tua domanda, ecco come eseguiresti un'attività rake dall'interno del codice Rails:

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

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

Intendiamoci, non ho idea di come (o perché) potresti avere un database per utente.

Altri suggerimenti

Utilizziamo file di configurazione separati per ciascun utente.Quindi nella directory config/ avremmo roo.database.yml che si collegherebbe al mio database personale e lo copierei sul file database.yml utilizzato da rails.

Stavamo pensando di espandere il Rakefile in modo da poter specificare lo sviluppatore come variabile d'ambiente, che poi selezionerebbe una specifica configurazione del database, permettendoci di avere un solo file database.yml.Tuttavia non l'abbiamo fatto poiché il metodo sopra funziona abbastanza bene.

In realtà ho scoperto un buon modo per eseguire le migrazioni di DB da un'applicazione:

ActiveRecord::Migrator.migrate("db/migrate/")

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top