Djangoマイグレーションエラー 外部キー制約を追加できない
2022-01-21 14:25:43
エラー解析
データベースの入れ替え後
文字セットエラー
元のライブラリと新しいライブラリの外部キーの文字セットが同じでないことを意味する
写真の通りです。
解決策
1. 移行はまず一度失敗する必要がある(このエラーが出るので、すでに一度移行していることになる)。
2. 現在のテーブルの外部キー・フィールドの文字セット(またはCOLLATE)を、外部キー関連テーブルの文字セットに変更します。
-
テーブル作成ステートメントを表示する(主に外部キー関連テーブルの主キーの文字セットを確認する)。
SHOW CREATE TABLE `user_group` (View the command to create a table)
-
文字セットの変更
ALTER TABLE user_group_info MODIFY employee_id VARCHAR(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
3. 新しいテーブルに外部キー制約を手動で追加する
alter table user_group_info add constraint `user_group_info_id_869a94b79388475b_fk_employee_info_id` foreign key (`employee_id`) REFERENCES `employee_info` (`id`) ON DELETE SET NULL ON UPDATE NO ACTION;
4. 第二次移行プラスフェイク
python manage.py migrate --fake
関連
-
MySQLのLike演算子に関する詳細
-
MySQLインストールチュートリアル(Windows用)詳細
-
MySql認証ベースのvsftpd仮想ユーザー
-
MySQLによる既存テーブルのパーティショニングの実装
-
MySQLの悲観的ロックと楽観的ロックの実装スキーム
-
[解決済み】DynamoDB : 提供されたキー要素がスキーマと一致しません。
-
[解決済み】MySQLで「すべての派生テーブルは独自のエイリアスを持つ必要があります」というエラーは何ですか?
-
[解決済み】MySQL エラー 1093 - FROM 句で更新のターゲット テーブルを指定できません。
-
[解決済み】SQLサーバーのテンポラリーテーブルで「すでに名前のついたオブジェクトがあります」エラーが発生する。
-
mysql がエラーを報告します。不明な文字セットです。'utf8mb4'
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MySQL演算子(and, or, in, not)の具体的な使用方法
-
SQL集計、グループ化、ソート
-
面接では選択式で聞かれましたが......。.for updateはテーブルをロックするか、行をロックするか?
-
[解決済み】MySQL - オペランドは1つのカラムを含む必要があります。
-
[解決済み】文字列からuniqueidentifierに変換する際に変換に失敗する - 2つのGUIDの場合
-
mysql5.7のインストールと、無料・長期利用を目的としたNavicateの導入プロセスについて
-
SQLステートメントエラーです。オペランドには 1 つのカラムを含める必要があります [括弧を追加せずに複数のフィールドをクエリする
-
SQL Server のトランザクションは、try キャッチに記述しなければ、中間ステートメントがエラーを報告してもコミットされます。
-
群関数解の無効な使用
-
MySQL 接続タイムアウト。エラー SQLSTATE[HY000] [2002] 接続がタイムアウトしました 解決済み