日本語でググってもわからなかった事を中心に。この広告は、90日以上更新していないブログに表示しています。モデルで構成されています。定義することで、バックエンドのデーターベース定義などは自動で生成してくれる形となっており、プログラミングする事に注意を払う事ができるのが良いところ。(僕の解釈が間違ってなければ)見えないところでは、O/Rマッパーが働いてて、DBにアクセスしたりしてくれています。完全に隠蔽できてるかというと、そうじゃないからたまには意識せねばというTIPSです。結論からいうと、DBMSによってデフォルトの照合順序違うよ。手軽に使えるDBのSQLite。バイナリだから、日本語でも何でも放り込めるって言う事ですね。各テーブルの各カラムは、関連した照合する機能を持ちます。明示的に照合機能が指定されない場合は、バイナリがデフォルト照合機能となります。何も考えずにDjangoでSQLiteをバックエンドに指定していると、照合順序がバイナリである事を頭の片隅においておく必要があります(DBを入れ替えると、こういう影響に気づく。詳細は、後日書く予定)。ちなみに3つの組み込み照合方法があるようです。別途、追加で登録する事も可能とか。対して、しっかり考えて使おうMySQL側ですが、デフォルトが何になるかはインストール方法などで異なるかと思います。あたりを設定したりしていました。SQLiteからの移行を行うと、もともとBINだったものなので、ソート順が異なるなどの弊害がでてしまいました。SQL文を直接記述する場合には、クエリ単位で照合順序を明示するなどの対策も打てると思いますが、Djangoフレームワークの上では難しいだろうと思われます。そこで、BINでのソートが必要なカラムだけを、個別に変更する事にしました。Djangoの仕組みではサポートされない(と思われる)ので、ただのシェルスクリプトを用意しての対応です。ascii_bin;設定したら、次のコマンドで確認。contents\G以上、Webアプリケーションフレームワーク使っているからといって、DBをただの箱として使っちゃいけないねというメモでした。アプリ作ってて、ふと気になったのでまとめてみた。...長年の問題が解決した。(JP)月別アーカイブはてなブログをはじめよう!hideharaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。