tree_id が重複して登録されていまう問題
- 多重処理を行っている時に発生することがある模様
| |
ロックをかける
django-mptt で tree_id の採番に関して、テーブルロックをかけることは可能です。django-mptt は、デフォルトでは、tree_id の採番にテーブルロックをかけていませんが、以下のようにして、テーブルロックをかけることができます³。
| |
このように、transaction.atomic() を使うことで、トランザクションを開始し、その中で行われる処理に対してロックをかけることができます。³
ソース: Bing との会話 2023/4/25
- (1) Concurrency and pre-calculated tree_id #555 - Github. https://github.com/django-mptt/django-mptt/issues/555.
- (2) Django で自動採番された id を使用する | コーヒー飲みながら仕事 …. https://coffee-nominagara.com/django-autoincrement-id.
- (3) 【Django】model の主キーにAutoFieldを設定しても自動採番し …. https://teratail.com/questions/221566.
tree_id を UUIDにするには?
uuid を生成して 整数に変換する -> 値が大きすぎる :
| |