根據django官方文件建議,開發過程中會把生成的migrations提交到git中。由於各種原因,會有一些場景需要重置migrations,故總結一些常用場景及解決辦法。
不考慮資料庫資料,可以完全清空資料庫。步驟:
刪除所有migrations
find . -path "*/migrations/*.py" -not -name "__init__.py" -delete
find . -path "*/migrations/*.pyc" -delete
刪除資料庫
重新生成migrations
python manage.py makemigrations
python manage.py migrate
有時候我們會直接匯入完整的資料庫,包括資料,這種情況下就不能簡單的清空資料庫。步驟:這時我們的目的就是:清空資料庫的migration history,保證以後的migrate能正常使用,但要保留其他資料。
從資料庫中刪除所有非0001_initial
的migration history
使用migrate命令回滾0001_initial
的migration history
python manage.py migrate --fake your zero
python manage.py migrate --fake labels zero
重新生成0001_initial
,如果能保證已有0001_initial
已是最新的,可跳過此步
find . -path "*/migrations/*.py" -not -name "__init__.py" -delete
find . -path "*/migrations/*.pyc" -delete
python manage.py makemigrations
在資料庫中生成新的0001_initial
記錄
python migrate --fake-initial
重置mysql 密碼 mysql重置密碼
ubuntu下重置mysql的root密碼 sudo vi etc mysql my.cnf,在 mysqld 段中加入一行 skip grant tables sudo service mysql restart,重啟mysql服務 sudo mysql u root p mysql,用空密碼進入...
mysql id重置密碼 mysql 重置密碼
mysql 重置密碼 版本5.7之前 1 修改mysql配置檔案 vi etc my.cnf 注 windows下修改的是my.ini 在 mysqld 後面任意一行新增 skip grant tables 用來跳過密碼驗證的過程。重啟mysql 2 進入mysql root localhost m...
mysql 重置密碼 mysql 重置密碼
mysql 重置密碼 版本5.7之前 1 修改mysql配置檔案 vi etc my.cnf 注 windows下修改的是my.ini 在 mysqld 後面任意一行新增 skip grant tables 用來跳過密碼驗證的過程。重啟mysql 2 進入mysql root localhost m...