2011-01-10 5 views
2

Railsのバージョン私のサイトの2、ほぼ同じコードベースでそれぞれのスキーマを比較する場合= 2.3.8一貫性のないRailsのデータベーススキーマ生成

は、私は非常に奇妙な何かに気づきました。正確に同じテーブルについては、1つのサイトのスキーマは示しています

t.integer "member_feed", :limit => 1, :default => 1 

や他のために:

t.boolean "member_feed", :default => true 

2が作成された方法に差はなかったです。実際には、サイトが作成されたときに最初のものが2番目のものから実際に抽出されました。この最初のスキーマにはブール値が正しく表示されなかったケースが少なくとも40件あり、change_columnの移行でそれぞれに入り、変更する必要がありました。ブール値が明示的に定義されていない場合は、機能に違いがあることに注意してください。

これを引き起こしている可能性のあることは誰でも考えられますか?ありがとう。

+0

データベース(PostgreSQL、SQLite3、MySQLなど)ごとに異なるデータベースを使用していますか?そのフィールドをDBに作成する投稿を投稿できますか? –

+0

両方の場合、この問題のサイトのデータベースは、元のサイトのスキーマを使用して 'rake db:schema:load 'を実行することによって生成されました – modulaaron

+0

@modulaaron - 私の答えはあなたの問題を理解するのに役立ちましたか? - あなたは私の答えを受け入れてください?それはまたあなたの答え率を向上させるのに役立ちます:) –

答えて

2

これは、異なるオペレーティングシステムから移行を実行する場合に発生します。それは間違っているレールのmysqlではなく、実際 mysqlです。

いくつかのバージョンでは、制限やその他のフラグがあるという事実は保存されていません...通常、実際には組み込みのブール値クラスを持っているため、制限=> 1の必要性がなくなりますそれもまた10進値の "精度"のいくつかのバージョンを保存していないことを確認してください)

この問題は、mysqlが他のすべてのバージョンに組み込みのクラスがあると仮定しているために発生します。

これは本当に修正できない統合システムのバグです。ごめんなさい。 :

関連する問題