既存のライブ プロダクションを変換する必要があるという問題があります (ローカル開発ボックスにスキーマを複製しましたが、心配しないでください) テーブルの列の型を列挙型から文字列に変換する必要があります。
バックグラウンド:
基本的に、以前の開発者は私のコードベースを完全に混乱させたままにしました。移行バージョンは非常に古く、開発のある時点以降は使用していないようで、Rails 1.2.6 アプリを2.3.5.
2.3.5 でテストを適切に実行できません。これは、テーブルの列に ENUM 列の型があり、schema.rb で に変換される:string
ため:limit => 0
ですdb:test:prepare
。の:
Mysql::Error: Invalid default value for 'own_vehicle': CREATE TABLE `lifestyles` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `member_id` int(11) DEFAULT 0 NOT NULL, `own_vehicle` varchar(0) DEFAULT 'Y' NOT NULL, `hobbies` text, `sports` text, `AStar_activities` text, `how_know_IRC` varchar(100), `IRC_referral` varchar(200), `IRC_others` varchar(100), `IRC_rdrive` varchar(30)) ENGINE=InnoDB
列のすべてのデータベース テーブルを調べて VARCHAR に置き換える移行タスクを作成することを考えていますが、これがこの問題にアプローチする正しい方法であるかどうか疑問に思っています。または、データベースを変更せずにこれを修正する方法があれば、なおさらです。
colum_types
また、データベーステーブルをループしてすべての ENUMを VARCHARに置き換えるように記述する方法もわかりません。
参考文献