2011-12-20 6 views
1

Я создаю приложение, которое должно позволить конечному пользователю, не программисту, самостоятельно установить приложение.Выполнение db: migrate и db: настройка задач rake внутри контроллера с использованием jruby и warble

Я уже обработал рубин env + веб-сервер + часть установки базы данных. Теперь мне нужно настроить базу данных для приложения. Я думаю о запуске rake db: setup внутри InstallationController (который будет доступен только в процессе установки).

Возможно ли это? Как я могу это сделать?

Я планирую использовать Warble и JRuby, поэтому я не смогу это сделать, используя командную строку внутри своего приложения.

+0

afaik сервер не запустится, если нет связи с db. вам может понадобиться сделать некоторые обезьяньи исправления в крючках-рейке activerecord – clyfe

ответ

4

пока существует база данных (или создает на использование как sqlite3), вы можете бросить инициализатор в приложение для запуска миграций довольно легко.

ActiveRecord::Migrator.migrate(Rails.root.join('db','migrate')) 
2

Вы не сможете использовать контроллер, если база данных установлена ​​неправильно. Если настройка должна быть через веб-интерфейс, вы можете включить небольшое приложение Sinatra, которое будет заниматься созданием БД, миграциями и т. Д. Для этого вам нужно только выложить свои команды (вы можете сделать это, запросив команду) :

puts "Migrating database..." 
`rake db:migrate`