我正在创建一个必须允许非程序员最终用户自己安装应用程序的应用程序。
我已经处理了 ruby env + web server + 数据库安装部分。现在我必须能够为应用程序设置数据库。我正在考虑在 InstallationController 中运行rake db:setup(只能在安装过程中访问)。
是否可以?我怎样才能做到这一点?
我打算使用 Warble 和 JRuby,所以我无法通过在我的应用程序中使用命令行来实现。
我正在创建一个必须允许非程序员最终用户自己安装应用程序的应用程序。
我已经处理了 ruby env + web server + 数据库安装部分。现在我必须能够为应用程序设置数据库。我正在考虑在 InstallationController 中运行rake db:setup(只能在安装过程中访问)。
是否可以?我怎样才能做到这一点?
我打算使用 Warble 和 JRuby,所以我无法通过在我的应用程序中使用命令行来实现。
只要数据库存在(或像 sqlite3 那样在使用时创建),您就可以在您的应用程序中抛出一个初始化程序以非常轻松地运行迁移。
ActiveRecord::Migrator.migrate(Rails.root.join('db','migrate'))
如果数据库设置不正确,您将无法使用控制器。如果必须通过 Web 界面进行设置,您可以包含一个小型 Sinatra 应用程序,该应用程序负责数据库创建、迁移等。为此,您只需输出您的命令(您可以通过反引用命令来完成) :
puts "Migrating database..."
`rake db:migrate`