1

RoR インストールの場合、rakeroot アクセスなしでコマンドを実行する方法はありますか?

別の言い方をすれば、ルートアクセスなしで取得db:createdb:migrateて実行する方法はありますか (おそらく自動的にまたは何か)? またはrake、RoR からコマンドを実行できますcontrollerか?

4

5 に答える 5

4

を見てrails-2.X.X/lib/tasks/databases.rakeください。データベースを作成、削除、および移行するために呼び出されるコードを確認できます。

環境が初期化されるrailsと、rake タスク ファイル内のコードを使用して作成、削除、および移行できます。

エラーになる前にコントローラーレベルでこれを実行できるかどうかはわかりませんが、いつでも試すことができます。rails環境ファイルでの初期化が完了した後に行うこともできます。

config/environment.rb

...

ActiveRecord::Migration.verbose = false
ActiveRecord::Migrator.migrate(File.join(Rails.root, 'db', 'migrate'))
于 2009-01-26T00:23:43.177 に答える
0

データベースを作成せずに RoR インスタンスを起動できるかもしれませんが、私はそうは思いません。ホスティング プロバイダーが RoR アプリをホストできる場合は、RoR アプリを実行する方法、rakeまたは何らかの方法で実行させる方法が必要です。

于 2009-01-26T00:14:09.017 に答える
0

データベースの作成で問題が発生しているようですが、ホスティング コントロール パネルから行う方法はありますか? それでも、データベースをどのように移行しますか? 新しいホストを確認する必要があるようです。私は Slicehost を使用していますが、素晴らしいと思います :)

于 2009-01-26T00:18:53.907 に答える
0

このコードを試してください:

require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'
require 'tasks/rails'
Rake::Task["db:version"].invoke

試してみただけで./script/console、うまくいきました。線がないとうまくいきませんrequire

私はこれを使用して、rake タスクから他の rake タスクを呼び出します (それが前提条件ではなく、途中で発生する必要がある場合)。

コマンドからの出力は得られないことに注意してください。必要に応じて、古き良きバッククォートを使用して、次のようにコマンドを実行できます。

output = `rake db:version`

別のプロセスが起動しますが、問題はないと思います。

于 2009-01-26T04:19:16.150 に答える
0

明確にするために、root アクセスは必要ありません。そのマシンへのシェル (ssh) アクセスのみが必要です。

アクセスなしでどのように展開していますか? カピストラーノを使用している場合は、すでにシェル アクセスがあり、それらのタスクを実行できます。

于 2009-01-27T14:43:27.187 に答える