簡単な質問:Djangoプロジェクトの開発中にsqliteを使用し、本番サーバーでMySQLを使用するのは良い考えですか?
6 に答える
本番環境でも開発段階と同じデータベースバックエンドを使用することを強くお勧めします。Djangoはデータベース関連のものを抽象化しますが、環境が異なると、恐ろしい国際化、構成の問題、およびライブにプッシュするまで表示されない厄介な小さな不整合が発生する可能性があります。
個人的には、mysqlに固執しますが、postgresを使用することはありません:)
私は以前のすべての回答を2番目に挙げ、いくつかの明確な理由を追加します。
- MySQLは、フィールド幅よりも長い文字列を格納しようとすると警告例外を発行します-SQLiteで取得できないため、文字列が開発と本番で異なるだけでなく、プログラムの動作も異なります
- 両方のバックエンドのバグは異なります-開発用のSQLiteと本番用のMySQLを試した後、SQLite1には存在しないMySQLバックエンドのバグを発見したことを覚えています。だから私はそれのチケットを提出し、テストのためにMySQLに切り替えました:-)
また、速度の点でSQLiteと競合することもできます。他の質問については、私の回答をご覧ください。
なぜあなたはそれをしたいのですか?
- SQLiteはまだストアドプロシージャをサポートしていません。
- SQLiteはタイプレスです。MySQLを実行すると、多くのタイプキャストの問題が発生する可能性があります。
- また、SQLiteはまだRIGHT結合をサポートしていません。
すべての環境で同じデータベースを使用します。
ORMがデータベース間の違いを抽象化しようとするのと同じように、データベースに基づいて異なる動作をする特定の機能が常に存在します。データベースの移植性は完全な神話です。
さらに、本番環境では決して使用しないコードパスに対してテストおよび開発するのは非常に正気ではないようです。
要するに、いいえ。開発時間を不必要に2倍にしたい場合を除きます。
sqliteから始めてこの大きな間違いを犯したばかりで、mysqlを使用して本番サーバーにデプロイしようとすると、期待したほどスムーズに機能しませんでした。さまざまなスイッチでdumpdata/loaddataを試しましたが、どういうわけか次々にエラーがスローされ続けます。自分自身に大きな恩恵を与え、本番と開発の両方に同じデータベースを使用してください。