Rename a field in schema¶
Assume you had a summary field before but now you want to rename it to bio.
- Rename the
summaryfield tobioinusers.BaseUser -
Add the following migration to
versions.v2001_01_01:from cadwyn import ( RequestInfo, ResponseInfo, VersionChange, convert_request_to_next_version_for, convert_response_to_previous_version_for, schema, ) from users import BaseUser, UserCreateRequest, UserResource class RenameUserSummaryToBio(VersionChange): """The user profile field 'summary' is now named 'bio' to match familiar profile terminology. """ instructions_to_migrate_to_previous_version = ( schema(BaseUser).field("bio").had(name="summary"), ) @convert_request_to_next_version_for(UserCreateRequest) def rename_bio_to_summary(request: RequestInfo): request.body["summary"] = request.body.pop("bio") @convert_response_to_previous_version_for(UserResource) def rename_bio_to_summary(response: ResponseInfo): response.body["bio"] = response.body.pop("summary")