0

レールに対してrakedb:migrateを実行していましたが、次のエラーで失敗しました。

==  AddColumnsToSavedSearch: migrating ========================================
-- add_column(:saved_searches, :search_param1, :string, {:limit=>1000})
   -> 0.0574s
-- add_column(:saved_searches, :search_param2, :string, {:limit=>1000})
rake aborted!
An error has occurred, all later migrations canceled:

Mysql2::Error: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs: ALTER TABLE `saved_searches` ADD `search_param2` varchar(1000)

この移行は、同じ構成(同じOSとDB)を持つ他のシステムで正常に実行されます。

私のMySQLDBバージョンはサーバーバージョン:5.5.24-0ubuntu0.12.04.1(Ubuntu)です。

どんな助けでも大歓迎です。

何か情報が必要な場合はお知らせください。

ありがとう

4

1 に答える 1

1

これは問題ではないかもしれませんが、通常、文字列データ型は少量のテキストに使用されます。MySQLにはVARCHAR(255)タイプを使用していると思います。データ型をテキストに変更してみてください。文字列がサポートできるサイズよりも大きいサイズに列を制限しようとすると、競合が発生する可能性があります。

于 2012-08-26T10:55:16.023 に答える