我有一个 Rails 应用程序,每个用户都有一个单独的数据库。(接受乔尔·斯波尔斯基(Joel Spolsky)对此的建议)。我想从 rails 应用程序运行数据库迁移,为这个用户创建一个新的数据库和表。
最简单的方法是什么?
也许数据库迁移不是这种类型的最佳选择。谢谢!
如果它可以是一个完全自动化的过程,那就太好了。以下过程将是理想的。
- 用户在我们的网站上注册以使用此网络应用程序
- 运行迁移以创建此用户数据库并正确设置表
有没有办法从 ruby 应用程序调用 rake 任务?
我有一个 Rails 应用程序,每个用户都有一个单独的数据库。(接受乔尔·斯波尔斯基(Joel Spolsky)对此的建议)。我想从 rails 应用程序运行数据库迁移,为这个用户创建一个新的数据库和表。
最简单的方法是什么?
也许数据库迁移不是这种类型的最佳选择。谢谢!
如果它可以是一个完全自动化的过程,那就太好了。以下过程将是理想的。
有没有办法从 ruby 应用程序调用 rake 任务?
我们为每个用户使用单独的配置文件。因此,在 config/ 目录中,我们将拥有 roo.database.yml,它将连接到我的个人数据库,然后我会将其复制到 rails 使用的 database.yml 文件中。
我们正在考虑扩展 Rails Rakefile,以便我们可以将开发人员指定为环境变量,然后选择特定的数据库配置,允许我们只有一个 database.yml 文件。我们还没有这样做,因为上述方法效果很好。
为了回答您的部分问题,以下是您从 Rails 代码中运行 rake 任务的方式:
require 'rake'
load 'path/to/task.rake'
Rake::Task['foo:bar:baz'].invoke
请注意,我不知道如何(或为什么)每个用户拥有一个数据库。
实际上,我发现了一种从应用程序运行数据库迁移的好方法:
ActiveRecord::Migrator.migrate("db/migrate/")