Django pg-crypto - Как перенести существующие поля?

В моей тестовой среде я установил pg-crypto, выполнив "pip install django-pgcrypto". Я вошел в базу данных вручную, используя "sudo -u postgres psql", затем я подключился к базе данных и установил расширение, используя "CREATE EXTENSION pgcrypto;". Затем я изменил поле в одной из моих моделей с "models.EmailField" на "pgcrypto.EncryptedEmailField", после чего запустил makemigrations и migrate.

Я смог успешно создать новую учетную запись, сделав вызов представления API. Затем я зашел в базу данных с помощью консоли Postgres и увидел, что она зашифровала поле email для этого нового пользователя, но предыдущие записи остались прежними. Теперь, когда я вхожу в консоль администратора Django, я получаю ошибку "Corrupt ascii armour".

Я предполагаю, что это происходит потому, что в таблице теперь есть смесь незашифрованных и зашифрованных полей электронной почты. Если я начну с новой базы данных, то все поля будут зашифрованы, и я не получу ошибку в консоли администратора

Пожалуйста, может кто-нибудь подсказать, как мне зашифровать выходящие записи или есть ли способ через Django migrations, чтобы не начинать с новой базы данных?

Вернуться на верх