CapistranoをMerbでDataMapperを使ってる場合に、 cap deploy:migrationsを実行した時に、rake db:migrateではなく、 rake db:autoupgradeをするようにするための設定の書き方のメモです。

具体的には、以下のようにdeploy:migrateタスクを書き換えます。

config/deploy.rb

   1  namespace :deploy do
   2    desc "Run autoupgrade"
   3    task :migrate do
   4      run "cd #{release_path}; rake db:autoupgrade MERB_ENV=production"
   5    end
   6  end

これでOKです。

posted by Png genki on Tue 2 Dec 2008 at 15:10

merbのsliceはRubyGemsの形で提供されているのですが、 これをmerbアプリケーションの中に展開する方法は、 freezeとunpackの2通りあります。

  • freezeは、sliceのapp/以下のみを展開する
  • unpackは、sliceの中身全部を展開する

freezeを使う目的は、sliceの挙動を一部変更する事です。 そのため、sliceをfreezeしても、config/dependencies.rbの中で sliceに対するdependencyを削除する事は出来ません。 依然としてsliceのgemに依存したままになります。

これに対して、unpackを使った場合、gemに内在する全てのファイルが展開されるため、config/dependencies.rbの中のsliceに対するdependencyを削除しても大丈夫な状態になります。

posted by Png genki on Tue 2 Dec 2008 at 09:57

merbのsliceをfreezeするには、

   1  % rake slices:<slice_name>:freeze

を実行すればOKです。

これにより、MERB_ROOT(Merbアプリケーションのルートディレクトリ)の下にslicesディレクトリが(無ければ)作成され、その下に <slice_name>というディレクトリが出来ます。 Sliceはその中にfreezeされます。

posted by Png genki on Tue 2 Dec 2008 at 09:02

merbのsliceを管理するRakeタスクの一覧をメモしておきます。 以下はmerb-auth-slice-activationの場合。

   1  slices:merb_auth_slice_activation:copy_assets
   2  slices:merb_auth_slice_activation:freeze
   3  slices:merb_auth_slice_activation:freeze:app
   4  slices:merb_auth_slice_activation:freeze:app_with_gem
   5  slices:merb_auth_slice_activation:freeze:gem
   6  slices:merb_auth_slice_activation:freeze:mailers
   7  slices:merb_auth_slice_activation:freeze:models
   8  slices:merb_auth_slice_activation:freeze:unpack
   9  slices:merb_auth_slice_activation:freeze:views
  10  slices:merb_auth_slice_activation:install
  11  slices:merb_auth_slice_activation:migrate
  12  slices:merb_auth_slice_activation:patch
  13  slices:merb_auth_slice_activation:preflight
  14  slices:merb_auth_slice_activation:setup_directories
  15  slices:merb_auth_slice_activation:spec
  16  slices:merb_auth_slice_activation:spec:controller
  17  slices:merb_auth_slice_activation:spec:default
  18  slices:merb_auth_slice_activation:spec:html
  19  slices:merb_auth_slice_activation:spec:mailer
  20  slices:merb_auth_slice_activation:spec:model
  21  slices:merb_auth_slice_activation:spec:view
  22  slices:merb_auth_slice_activation:stubs

posted by Png genki on Tue 2 Dec 2008 at 08:58
Contents
MerbでDataMapperを使ってる場合のcap deploy:migrations
merbのsliceにおけるfreezeとunpackの違い
merbのsliceをfreezeする
merbのslicesを扱うRakeタスク一覧
Comments
dsjf: https://gist.github.com/6bf1bf2c3cbb5eb6e7a7 これ... '13-1
瀧内元気: おお、チェックしてみます。thx! '11-12
overisland: Reeder for iPhone もこの UI を実装していますね。 '11-12
瀧内元気: その情報は見たのですが、以下のサイトによると、現在はまた必要になってるっぽいんですよね。 ... '11-12
tkawa: http://devcenter.heroku.com/articles/rails31_he... '11-12
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ