2008-09-02 112 views
0

我有一個rails應用程序,其中每個用戶都有一個單獨的數據庫。 (考慮Joel Spolsky的建議)。我想從Rails應用程序運行數據庫遷移,爲此用戶創建一個新的數據庫和表。從應用程序運行DB遷移

這樣做最簡單的方法是什麼?

也許數據庫遷移並不是最適合這種類型的東西。謝謝!


這將是很好,如果它可能是一個完全自動化的過程。以下過程將是理想的。

  1. 一個用戶註冊我們的網站上使用這個Web應用程序
  2. 遷移正在運行,以創建這個用戶數據庫並獲取表格設置正確

是否有調用從rake任務的方式一個紅寶石應用程序?

回答

1

要回答你的問題的一部分,這裏是如何你運行rake任務從裏面Rails代碼:

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

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

你要知道,我不知道你如何能(或爲什麼)有每一個數據庫用戶。

+0

>你要知道,我有不知道如何(或爲什麼)你可以有一個數據庫每個用戶。以下鏈接涵蓋了多個數據庫的方式和原因(也許這應該是另一個關於計算器的問題?) [http://wiki.rubyonrails.org/rails/pages/HowtoUseMultipleDatabases](http://wiki.rubyonrails。組織/導軌/頁/ HowtoUseMultipleDatabases) – 2008-09-02 17:08:45

1

我們爲每個用戶使用單獨的配置文件。所以在config/dir中,我們會有roo.database.yml,它將連接到我的個人數據庫,並且將通過rails使用的database.yml文件複製該文件。

我們正在考慮擴展rails Rakefile,以便我們可以將開發人員指定爲環境變量,然後選擇一個特定的數據庫配置,這樣我們只能擁有一個database.yml文件。我們還沒有這樣做,因爲上述方法運作良好。

0

其實我已經發現了從一個應用程序中運行數據庫遷移的一個好辦法:

的ActiveRecord :: Migrator.migrate( 「DB /遷移/」)