2011-02-04 4 views
4

Railsのschema.rbに問題があります。私はrake db:migrate結果は、私は、PostgreSQLを使用して、テキストフィールドが、それは私にRails schema.rbが異なるデータベースで異なる

t.text  "summary" 

ラインが得られますが、SQLiteのと、それは私にも

t.text  "summary", :limit => 255 

与えれば正確には、異なるデータベースのために異なっている実行している場合私はスペースの数が異なる、:defaultを使用して、PostgreSQLの:

t.boolean "watched", :default => false, :null => false 

のSQLite:

t.boolean "watched",     :default => false, :null => false 

私が生産上rake db:migrateを実行すると、それは私のschema.rbを変更し、明らかに開発環境で生成されたschema.rbを使用しているとき、私は生産にrake db:schema:loadを使用できないことは非常に迷惑です。私の質問はなぜ違いがあるのか​​、どのようにしてそれらを消滅させるのかです。つまり、schema.rbは生産と開発で同じですか?

答えて

10

ご自身のために、開発時に同じDBエンジンを本番環境で使用することをお勧めします。ローカルのMySQLサーバやPostgreSQLサーバを立ち上げるには多大な労力を要さず、一度押すと同じバックエンドですべての開発とテストを行うことで驚くような驚きを避けます製造。

+2

私が探していた答えは正確ではありませんが、それは良いアドバイスです。 PostgreSQLを開発にも使用します。ありがとうございます。 –

+2

DB間の違いは数多くあり、微妙であり、RailsはDBの周りに完全に密閉された抽象化を提供しません。 devとproductionで同じDBを使うことは絶対必要です。 –