我在我的Django項目中有以下2個應用程序。一個應用程序(播放器)具有引用其他應用程序(團隊)的ForeignKey。Django models.ForeignKey外鍵約束
應用1 - 播放器/ 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
就是這樣。當我第一次嘗試恢復時,它給了我這個錯誤 錯誤1005(HY000)在第12行:無法創建表'MYDB.auth_group_permissions'(errno:150)
當我嘗試恢復第二次(和後續)的時間,它使一行更遠,但它給了我這個錯誤: 錯誤1050(42S01)在行3:表'auth_group'已存在
我認爲這些錯誤必須與外國關鍵約束,但我不知道如何解決它。
我知道這是一口,但任何意見將不勝感激。如果有的話,我會在明天發佈我的發現。
在此先感謝!
有你'蟒蛇manage.py syncdb'? – mariusnn 2012-07-13 03:29:00
你應該看看南一旦你已經修復這個 – 2012-07-13 07:33:24
@mariusnn是的,我可以'syncdb'罰款,並使用管理控制檯來管理一切。 – markhops 2012-07-13 13:16:06