2015-07-28 7 views
2

下面是我在做什麼的時候,我想這不是正確的解決方案:Pycharm:makemigrations和遷移忽略了我的變化

  • 修改我的模型
  • 刪除db.sqlite3文件
  • 推出makemigrations然後migrate

如果我刪除db.sqlite3文件我有這樣的,當我嘗試運行makemigrations然後migrate

[email protected] > makemigrations 
"C:\Program Files (x86)\JetBrains\PyCharm 4.5.3\bin\runnerw.exe" C:\Python34\python.exe "C:\Program Files (x86)\JetBrains\PyCharm 4.5.3\helpers\pycharm\django_manage.py" makemigrations C:/Users/Olivier/PycharmProjects/pyweb 
No changes detected 

Process finished with exit code 0 
[email protected] > migrate 
"C:\Program Files (x86)\JetBrains\PyCharm 4.5.3\bin\runnerw.exe" C:\Python34\python.exe "C:\Program Files (x86)\JetBrains\PyCharm 4.5.3\helpers\pycharm\django_manage.py" migrate C:/Users/Olivier/PycharmProjects/pyweb 
Operations to perform: 
    Synchronize unmigrated apps: staticfiles, messages, produits 
    Apply all migrations: sessions, auth, contenttypes, admin 
Synchronizing apps without migrations: 
    Creating tables... 
    Running deferred SQL... 
    Installing custom SQL... 
Running migrations: 
    No migrations to apply. 

Process finished with exit code 0 

什麼步驟我錯過了避免刪除數據庫文件?

回答

1

改變模型後,你只是做

python manage.py makemigrations your_app 

然後用

python manage.py migrate 

這樣做你沒有刪除你的數據庫進行遷移。 我希望這可以幫助你..但不要忘記運行makemigrations後,你應用更改到您的模型

+0

當我這樣做,我得到:'django.db.utils.OperationalError:表「xxx」已存在' –

+1

然後你已經在遷移過程中出現了問題。嘗試評論您的模型並通過上述步驟生成遷移,然後再次取消註釋並再次生成遷移並遷移它 – gamer

+0

如果您可以閱讀遷移文件,那麼只需刪除該遷移文件,即可創建剛剛創建的表。並運行遷移,將幫助你..但要小心只刪除已創建您的XXX表的遷移 – gamer