π₯ ΠΠ°ΠΊ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π² Django ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ ΠΌΠ΅ΡΡΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ π»
Π§ΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Django, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π³ΠΈ:
- ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ ΠΈΠ»ΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Django.
- ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
python manage.py migrate --fake your_app_name zero
ΠΠ΄Π΅ΡΡ your_app_name
- ΡΡΠΎ ΠΈΠΌΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Django, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ.
ΠΠΎΠΌΠ°Π½Π΄Π° migrate --fake your_app_name zero
Π² ΠΎΠ±Ρ
ΠΎΠ΄Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΈΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Ρ Π΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π² ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (zero).
Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π²Π°ΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π±ΡΠ΄ΡΡ ΡΠ΄Π°Π»Π΅Π½Ρ.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Django
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Django ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ, ΡΠΊΠ°ΠΆΠ΅ΠΌ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ±ΡΠΎΡΠΈΡΡ Π²ΡΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΈ Π½Π°ΡΠ°ΡΡ Ρ ΡΠΈΡΡΠΎΠ³ΠΎ Π»ΠΈΡΡΠ°. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π² Django.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΠΊΠΎΡΠ½Π΅Π²ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Django. ΠΠ°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅:
python manage.py makemigrations app_name --empty
ΠΠ΄Π΅ΡΡ app_name
- ΡΡΠΎ ΠΈΠΌΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Django. ΠΠ°Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΡΡΡΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ. Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡΡ Π²Π½ΡΡΡΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ migrations
.
ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»ΠΈΡΠ΅ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ, ΠΊΡΠΎΠΌΠ΅ ΡΠ°ΠΉΠ»Π° __init__.py
. Π€Π°ΠΉΠ» __init__.py
ΡΠ»ΡΠΆΠΈΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ, ΡΡΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ Python.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ:
rm migration_file_name.py
ΠΠ΄Π΅ΡΡ migration_file_name.py
- ΡΡΠΎ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ. ΠΠΎΠ²ΡΠΎΡΠΈΡΠ΅ ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ.
ΠΠΎΡΠ»Π΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ Π·Π°ΠΏΠΈΡΠΈ ΠΎ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡΡ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Django ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅:
python manage.py migrate app_name zero
ΠΠ΄Π΅ΡΡ app_name
- ΡΡΠΎ ΠΈΠΌΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Django. ΠΠΎΠΌΠ°Π½Π΄Π° migrate
Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ zero
ΡΠ΄Π°Π»ΠΈΡ Π²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΎ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡΡ
Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΡΠΎΠ±Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΈΡΡΠΈΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ Ρ
ΡΠ°Π½ΠΈΡΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ django_migrations
. ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ SQL-Π·Π°ΠΏΡΠΎΡ Π² Π²Π°ΡΠ΅ΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
:
DELETE FROM django_migrations WHERE app='app_name';
ΠΠ΄Π΅ΡΡ app_name
- ΡΡΠΎ ΠΈΠΌΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Django. ΠΠ°ΠΏΡΠΎΡ ΡΠ΄Π°Π»ΠΈΡ Π²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΎ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡΡ
Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ django_migrations
.
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ΄Π°Π»ΠΈΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Django ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½ΠΈΠΌΠΈ Π·Π°ΠΏΠΈΡΠΈ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ .