我的 Django 项目中有以下 2 个应用程序。一个应用程序(玩家)有一个引用另一个应用程序(团队)的 ForeignKey。
应用程序 1 - player/models.py
class Player(models.Model):
name = models.CharField(max_length=100)
team = models.ForeignKey(Team)
应用 2 - 团队/models.py
class Team(models.Model):
name = models.CharField(max_length=100)
问题 #1 - 一切似乎都正常,但是当我尝试运行时,manage.py reset teams
出现以下错误:
Error: Error: users couldn't be reset. Possible reasons:
* The database isn't running or isn't configured correctly.
* At least one of the database tables doesn't exist.
* The SQL was invalid.
Hint: Look at the output of 'django-admin.py sqlreset users'. That's the SQL this command wasn't able to run.
The full error: (1217, 'Cannot delete or update a parent row: a foreign key constraint fails')
我确保我所有的表都是 InnoDB。我见过人们建议将SET FOREIGN_KEY_CHECKS=0
其用作修复程序,但我不确定如何最好地使用它manage.py rest
问题 #2 - 当我执行 mysqldump 时,我无法在不遇到错误的情况下恢复我的 MySQL 数据库。我的基本程序如下:
转储我的数据库。
mysqldump --user=root --password=pass --result-file=MYBACKUP.SQL --compact MYDB
删除数据库,并创建一个具有相同名称的新数据库。
恢复我的数据库。
mysql -u root -p MYDB < MYBACKUP.SQL
就是这样。当我第一次尝试恢复时,它在第 12 行给了我这个错误 ERROR 1005 (HY000): Can't create table 'MYDB.auth_group_permissions' (errno: 150)
当我尝试第二次(及后续)恢复时,它使它更远了一行,但它给了我这个错误:第 3 行的 ERROR 1050 (42S01): Table 'auth_group' already exists
我认为这些错误与外键约束有关,但我不确定如何修复它。
我知道这很拗口,但任何建议将不胜感激。如果有的话,我明天会在这里发布我的发现。
提前致谢!