Я працював над контрактним проектом у Django, і я здійснив кілька оновлень для прямого сервера, включаючи оновлення, що переходили з Півдня до оновленої версії Django.
Я намагався виконувати вказівки в документації, де зазначено видалення всіх старих файлів міграції, за винятком в цьому, а потім використовуйте makemigrations та "python Manag.py migrate --fake-Initial".
Але виявляється, дозволи на базу даних були хибними. Я не зміг застосувати оновлення.
Власник сервера (який був минулим підрядником) ще не зрозумів, що існує дозвіл, і спробував оновити самостійно.
Зараз сервер працює, але він сказав мені, що "довелося зробити багато змін у роботі міграцій, оскільки не було старих міграцій".
Я припускаю, що він не знав належного способу переходу з Півдня до інтеграційних міграцій з Django, і все це робив вручну, а не дозволяв міграціям Django виконувати роботу.
Ну що ж, я зараз готовий до майбутніх оновлень, але я дивлюся в папку міграцій, і схоже, що і старі файли міграції, і нові файли міграцій є там? Приклад: http://screencast.com/t/gYQdc1tl4 (помітити дати).
Все, здається, працює, але мені цікаво ... як мені піти з приводу майбутніх міграцій звідси? Чи спрацює регулярна макеграція / міграція? Або я повинен зробити --fake-Initial знову?
Будь-які пропозиції, будь ласка? Оскільки ми відхилилися від документації, я не впевнений, як іти далі про це.
Дякую
Відповіді:
2 для відповіді № 1Якщо зараз все працює, і вам не потрібні міграції для вашого сервера розробки, я б просто видалив усі старі міграції (зробіть резервну копію!) І почав би з "нових міграцій", використовуючи --fake-initial