Pergunta

Eu tenho uma aplicação rails, onde cada usuário possui um banco de dados separado.(tomando Joel Spolsky conselhos sobre isso).Eu quero correr DB migrações a partir da aplicação rails para criar um novo banco de dados e tabelas que este usuário.

Qual é a maneira mais fácil de fazer isso?

Talvez o db migração não é o melhor para esse tipo de coisa.Obrigado!


Seria bom se ele pudesse ser um processo totalmente automático.O processo a seguir seria o ideal.

  1. Um utilizador se regista no nosso site para utilizar este web app
  2. As migrações são executados para criar esta base de dados dos usuários e obter tabelas de configuração corretamente

Existe uma maneira de chamar um ancinho tarefa a partir de uma aplicação ruby?

Foi útil?

Solução

Para atender parte da sua pergunta, aqui está como você gostaria de executar uma tarefa rake de dentro de Trilhos de código:

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

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

Você mente, eu não tenho nenhuma idéia de como (ou por que) você pode ter um banco de dados por usuário.

Outras dicas

Nós usamos separar os arquivos de configuração para cada usuário.Por isso no config/ dir teríamos roo.de banco de dados.yml que iria ligar para o meu banco de dados pessoal, e eu não iria copiar mais o banco de dados.yml arquivo que é usado pelo rails.

Estávamos pensando em expandir os trilhos Rakefile assim, podemos especificar o desenvolvedor como uma variável de ambiente, que, em seguida, selecione um specfic datbase de configuração, permitindo-nos ter apenas um banco de dados.yml arquivo.Nós não fizemos isto, porém, como o método acima funciona bem o suficiente.

Na verdade, eu descobri uma boa maneira de executar o DB migrações a partir de uma aplicação:

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top