Вы полностью правы когда говорите что коды могут как сто сложно генерится и являться логикой приложения, также как и изменение баланса. Но судя по обсуждению ваша логика вполне себе уживается в коде миграции. Это не поход в какой то сервис, это чистая функция. Вот допустим вам надо было бы в миграции, открытые пароли, заменить на md5 хеши. Вы бы замену паролей на md5 вынесли в отдельную команду?