我有多个 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”安装,并在默认的 libapache2-mod-passenger 上安装了默认的 Redmine(aptitude install redmine)。
我已经使用 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 吗?