rails:865
From: emori <m.karibe@g...>
Date: Tue, 10 Jan 2006 15:08:05 +0900
Subject: [rails:865] clone_structure_to_testについて
はじめまして。emori と申します。 rake clone_structure_to_test コマンドについて 質問があります。 mysqlでのテーブル作成時に、 DATA DIRECTORY、INDEX DIRECTORYのオプションを 使用してテーブルを作成し、rake test_unitsを実行すると、 INDEXファイルが見つからないというエラーが発生します。 rake clone_structure_to_test コマンドでは、 データディレクトリを指定して作成したテーブルを testデータベースにcopyできないのでしょうか? 何か方法などをご存知でしたら、アドバイスお願いいたします。 以下、確認した手順を記述します。 1. DATA DIRECTORY、INDEX DIRECTORYを指定してテーブルを作成。 CREATE TABLE `users` ( `id` smallint(6) NOT NULL default '0' `name` varchar(10) default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=ujis DATA DIRECTORY='/usr/data/db/' INDEX DIRECTORY='/usr/data/db/' すると、/usr/data/db/ に、INDEXファイル(users.MYI)、 データファイル(users.MYD)が作成されます。 mysqlのdatadir(show variables コマンドで参照)の データベース名のディレクトリには、 データディレクトリへのシンボリックリンクが作成されます。 t.MYD -> /usr/data/db/t.MYD t.MYI -> /usr/data/db/t.MYI 2. scaffold でmodel, controller, viewを作成。 ruby/generate scaffold user user 3. rake test_unitsを実行。 以下のエラーが出力。 -------------------------------------------------------------------------------- 1) Error: test_truth(UserTest): ActiveRecord::StatementInvalid: MysqlError: 'users.MYI' ファイルを見付ける事がで きません.(errno: 2): DELETE FROM users /usr/lib/ruby/gems/1.8/gems/activerecord-1.13.2/lib/active_record/connection _adapters/abstract_adapter.rb:88:in `log' /usr/lib/ruby/gems/1.8/gems/activerecord-1.13.2/lib/active_record/connection _adapters/mysql_adapter.rb:180:in `execute' /usr/lib/ruby/gems/1.8/gems/activerecord-1.13.2/lib/active_record/connection _adapters/mysql_adapter.rb:195:in `delete' /usr/lib/ruby/gems/1.8/gems/activerecord-1.13.2/lib/active_record/fixtures.r b:279:in `delete_existing_fixtures' /usr/lib/ruby/gems/1.8/gems/activerecord-1.13.2/lib/active_record/fixtures.r b:252:in `create_fixtures' /usr/lib/ruby/gems/1.8/gems/activerecord-1.13.2/lib/active_record/fixtures.r b:252:in `each' /usr/lib/ruby/gems/1.8/gems/activerecord-1.13.2/lib/active_record/fixtures.r b:252:in `create_fixtures' /usr/lib/ruby/gems/1.8/gems/activerecord-1.13.2/lib/active_record/fixtures.r b:251:in `transaction' /usr/lib/ruby/gems/1.8/gems/activerecord-1.13.2/lib/active_record/fixtures.r b:251:in `create_fixtures' /usr/lib/ruby/gems/1.8/gems/activerecord-1.13.2/lib/active_record/fixtures.r b:244:in `silence' /usr/lib/ruby/gems/1.8/gems/activerecord-1.13.2/lib/active_record/fixtures.r b:244:in `create_fixtures' /usr/lib/ruby/gems/1.8/gems/activerecord-1.13.2/lib/active_record/fixtures.r b:540:in `load_fixtures' /usr/lib/ruby/gems/1.8/gems/activerecord-1.13.2/lib/active_record/fixtures.r b:487:in `setup' 2) Error: test_truth(UserTest): NoMethodError: You have a nil object when you didn't expect it! You might have expected an instance of Array. The error occured while evaluating nil.- /usr/lib/ruby/gems/1.8/gems/activerecord-1.13.2/lib/active_record/transactio ns.rb:112:in `unlock_mutex' /usr/lib/ruby/gems/1.8/gems/activerecord-1.13.2/lib/active_record/fixtures.r b:509:in `teardown' 1 tests, 0 assertions, 0 failures, 2 errors rake aborted! Command failed with status (1): [/usr/bin/ruby1.8 -Ilib:test "/usr/lib/ruby...] -------------------------------------------------------------------------------- ++++++++++++++++++++ emori m.karibe@g... ++++++++++++++++++++ -- ML: rails@r... 使い方: http://QuickML.com/
-> 865 2006-01-10 07:08 [m.karibe@g... ] clone_structure_to_testについて 867 2006-01-10 09:57 ┗[moriq@m... ] 871 2006-01-11 05:42 ┗[m.karibe@g... ]