2017-01-04 3 views
2

対SQLiteのIが開発DBとSQLiteのとレール5の列(IDタイプINT)で注文すると、それが期待どおりにソートする(1,2,3,4 ...)が、同じ私のプロダクション環境(PostgreSQL)上のものは、予期しない動作(1,101,102、... 2、201、...)などを引き起こします。:PostgreSQLの

PostgreSQL(MyModel.order('id::integer DESC')のように注文すると、PostgreSQLで問題なく動作しますが、開発用のsqlite環境では動作しなくなります。

私は何か見落としていますか?私はプログラミングには全く新しいです。

+1

短すぎます。データベースを混在させるだけでは問題を抱えています。 – Brian

+1

OrderはPostgresでも同じように動作しますが、idカラムのデータ型は間違っていなければなりません。 – Iceman

+0

あなたのデータ型が混乱しています。 '.schema your_table'は' sqlite3'シェルで何を言いますか? 'psql'の' \ d your_table'はどうでしょうか? SQLiteは、列ベースの型システムではなく、非常に緩やかな値ベースの型システムを持っていることに注意してください(つまり、整数として宣言された列に文字列を置くことができます。 –

答えて

0

あなたのデータ型が台無しにされています。 .schema your_tableとは何ですか? sqlite3シェルですか? psqlの\ d your_tableについてはどうですか? SQLiteのは非常に緩い値ベース型システムではなく、 列ベースのものを持っていることを覚えておいてください(すなわち、あなたは 整数として宣言された列に文字列を置くことができますし、SQLiteは事を言うことはありません)。 - muは私があなたの問題に話すことはできませんが、私はあなたが両方の環境で同じデータベースエンジンを使用することを示唆している