MySQL の AutoIncrement が足りなくなった場合の対応
Django
2020-05-18 02:16 (6年前)

MySQLdb._exceptions.OperationalError: (1467, 'Failed to read auto-increment value from storage engine')
Django で、暗黙の id を指定していると、auto increment 値が上限値に達したとき上記のエラーが出る。
DBの確認
SELECT AUTO_INCREMENT
FROM information_schema.tables
WHERE TABLE_SCHEMA = 'my_schema'
AND TABLE_NAME = 'my_table';
| AUTO_INCREMENT |
| 2147483647 |
SHOW CREATE TABLE my_table;
CREATE TABLE `my_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
...
モデルの修正
id = models.BigAutoField(primary_key=True)
を追加
./manage.py makemigrations
./manage.py migrate
SHOW CREATE TABLE my_table;
CREATE TABLE `my_table` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
...
評価をお願いします (会員登録・ログイン不要)
まだ評価がありません
関連記事
Django を 5.1 にアップグレードしたら、管理サイトの Inline で、プライマリーキーが表示される場所に `{'name': 'id', 'label': 'ID', 'help_text': '', 'field': 'id', 'is_hidden': True}` のような文字列が表示される場合の対応
django-allauth で、ソーシャルアカウントプロバイダーを決め打ちしてログインビュー・リダイレクトビューを返す (AWS Cognitoを使う時など)
Django5にして依存ライブラリも更新したら、メール送信で SSL: CERTIFICATE_VERIFY_FAILED エラーが出るようになった
Django の ユニットテストの assertEqual の引数の first, second は実際は expected, actual
著者は、アプリケーション開発会社 Cyberneura を運営しています。
開発相談をお待ちしています。
開発相談をお待ちしています。