我有多個Redmine 實例。我們稱它們為 InstanceA 和 InstanceB。 InstanceA 和 InstanceB 在 Debian 上共用相同的 Redmine 安裝。假設我想在兩個實例上安裝Redmine 1.3,我該怎麼做?
升級核心檔案後,我必須遷移資料庫。我想知道的是:我可以一次遷移所有資料庫嗎?
通常我會做類似的事情:
rake -s db:migrate RAILS_ENV=production X_DEBIAN_SITEID=InstanceA
對於每個實例,但是如果您有 50 多個實例,這會變得乏味。
先致謝!
編輯:
(Debian) Redmine 套件中的 README.Debian 檔案指出:
SUPPORTS SETUP AND UPGRADES OF MULTIPLE DATABASE INSTANCES
This redmine package is designed to automatically configure database
BUT NOT the web server.
The default database instance is called "default".
A debconf facility is provided for configuring several redmine
instances. Use dpkg-reconfigure to define the instances identifiers.
但無法弄清楚如何使用「debconf 設施」。
編輯2:
我的環境是預設的 Debian 6.0“Squeeze”安裝,預設的 Redmine (aptitude install redmine) 安裝在預設的 libapache2-mod-passenger 上。
我已經使用 dpkg-reconfigure redmine 設定了兩個實例。
答案1
for i in $(cat file-with-instance-names-in-it) ; do rake -s db:migrate RAILS_ENV=production X_DEBIAN_SITEID=$i ; done
答案2
我可能已經解決了我自己的問題。
命令
dpkg-reconfigure --frontend=noninteractive redmine
似乎無需用戶輸入即可遷移所有實例。該命令調用:
rake db:migrate_plugins RAILS_ENV=production
所以它似乎也調用了:
rake db:migrate RAILS_ENV=production
我成功地將所有 Redmine 1.0 實例(“Squeeze”)遷移到 1.2(“Wheezy”)。
編輯:我想知道這是否是正確的方法。任何人都可以確認它呼叫了 rake db:migrate 嗎?