• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

昔は
mysql_retry_lost_connection
というものがあったのですが、最近 (Rails-2.3以降) は config/database.yml の中で

yaml>>
production:
reconnect: true
<<--

とやるだけで、接続が切れた場合に再接続してくれるようです。
まあ、ここまで用意するならデフォルトでそうなってても良いと思うんですけどね。

posted by genki genki on Sat 11 Jun 2011 at 07:03 with 0 comments

merbにはautomigrateやautoupgradeがあるので、Railsほどmigrationを手で書く機会は少ないのですが、それでもデータ移行や、カラムの削除などの破壊的もしくは単純ではないDB操作を行う必要が発生した場合は、Railsと同様のmigrationを行う事になります。

merbの場合、以下のようなコマンドでマイグレーションファイルを作成します。

pre>>
% merb-gen migration name_of_migration
<<--

schema/migrations/001_name_of_migration.rbという感じでマイグレーションファイルが生成されます。中身はこんな感じ。

ruby>>
migration 1, :name_of_migration do
up do
end

down do
end
end
<<--

See Also

posted by genki genki on Thu 1 Jan 2009 at 17:51 with 0 comments

テストの実行時に利用されるDBは、通常development環境のstructureがコピーされますが、何らかの事情でproduction環境のものを使って欲しい場合もあります。
そんなときは、以下のRakeタスクを実行すればOK.

pre>>
% rake db:test:clone RAILS_ENV=production
<<--

これによって、production環境のstructureがコピーされます。

posted by genki genki on Thu 15 May 2008 at 11:13 with 0 comments

TokyoCabinet
のBDBが使いたくなったので導入手順をメモ。

といっても非常に簡単で、上記リンクからLatest Packageをダウンロードしてきて
/usr/local/src等の場所に展開し、

sh>>

./configure --enable-devel

make

make install

<<--

でOK。あとはRubyBindingも
こちら
から最新版をダウンロードしてきて展開し、

sh>>

ruby extconf.rb

make

make install

<<--

でOK。tokyocabinet.soが生成されてインストールされます。

あとは、Rubyから

ruby>>
require 'tokyocabinet'

bdb = TokyoCabinet::BDB.new
bdb.open("somefile",
TokyoCabinet::BDB::OCREAT | TokyoCabinet::BDB::OWRITER)

do work

bdb.close
<<--

等のようにして使えます。

posted by genki genki on Sun 27 Apr 2008 at 01:34 with 0 comments

This is just a signpost.

Does anyone know other tools?

See Also

posted by takiuchi takiuchi on Thu 6 Mar 2008 at 22:17 with 0 comments

Rails 2.0(RC1)でチェックしてみたところ、以下のような構文で migration
コードの生成時に追加・削除を行うcolumnを指定できるようです。

shell>>
% ./script/generate migration add_fullname_to_users fullname:string
<<--

この結果、生成生成されるコードは以下の通り。

db/migrate/XXX_add_fullname_to_users.rb

rails>>
class AddFullnameToUsers < ActiveRecord::Migration
def self.up
add_column :users, :fullname, :string
end

def self.down
remove_column :users, :fullname
end
end
<<--

ちょっと前まで、add_xxxx_to_yyyy で yyyyテーブルにxxxxカラムを
追加するという感じの挙動をしていたのですが、それは無くなったみたいですね。
まだRC1なので最終的にどういう形に落ち着くか分かりませんが、
なかなかいい感じです。

posted by genki genki on Wed 28 Nov 2007 at 02:08 with 0 comments