从应用程序运行数据库迁移

时间:2008-09-02 06:17:20

标签: ruby-on-rails

我有一个rails应用程序,每个用户都有一个单独的数据库。 (以Joel Spolsky的建议为准)。我想从rails应用程序运行数据库迁移,以便为该用户创建新的数据库和表。

最简单的方法是什么?

对于这类事情,db迁移可能不是最好的。谢谢!


如果它可以是一个完全自动化的过程,那就太好了。以下过程将是理想的。

  1. 用户在我们的网站上注册以使用此网络应用
  2. 运行迁移以创建此用户数据库并正确设置表
  3. 有没有办法从ruby应用程序调用rake任务?

3 个答案:

答案 0 :(得分:1)

我们为每个用户使用单独的配置文件。所以在config / dir中我们将有roo.database.yml连接到我的个人数据库,我会将它复制到rails使用的database.yml文件中。

我们正在考虑扩展rails Rakefile,因此我们可以将开发人员指定为环境变量,然后选择特定的数据库配置,允许我们只有一个database.yml文件。我们没有这样做,因为上述方法运作良好。

答案 1 :(得分:1)

要回答部分问题,这里是你如何从Rails代码中运行rake任务:

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

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

请注意,我不知道每个用户可以拥有一个数据库的方式(或原因)。

答案 2 :(得分:0)

实际上我发现了一种从应用程序运行数据库迁移的好方法:

  

的ActiveRecord :: Migrator.migrate( “分贝/迁移/”)