Files
wehub-resource-sync dde272c4b8
i18n - Build Validation / Validate i18n Builds (24) (push) Has been cancelled
CI - Node.js / Lint (24) (push) Has been cancelled
CI - Node.js / Build (24) (push) Has been cancelled
CI - Node.js / Test (24) (push) Has been cancelled
CI - Node.js / Test - Upcoming Changes (24) (push) Has been cancelled
CI - Node.js / Test - i18n (italian, 24) (push) Has been cancelled
CI - Node.js / Test - i18n (portuguese, 24) (push) Has been cancelled
CD - Docker - GHCR Images / Build and Push Images (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 11:55:53 +08:00

2.8 KiB

id, title, challengeType, dashedName
id title challengeType dashedName
6a1d9f98e819ed70a0e994d9 Challenge 327: Database Migration 29 challenge-327

--description--

Given two database objects, return the second object with any missing properties from the first filled in.

  • Fields that already exist in the record should not be overwritten.

--hints--

migrate_record({ "username": "", "posts": 0 }, { "verified": True }) should return { "username": "", "posts": 0, "verified": True }.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(migrate_record({ "username": "", "posts": 0 }, { "verified": True }), { "username": "", "posts": 0, "verified": True })`)
}})

migrate_record({ "username": "", "posts": 0 }, { "username": "camper", "posts": 5 }) should return { "username": "camper", "posts": 5 }.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(migrate_record({ "username": "", "posts": 0 }, { "username": "camper", "posts": 5 }), { "username": "camper", "posts": 5 })`)
}})

migrate_record({ "username": "", "posts": 0, "verified": False }, { "username": "camper" }) should return { "username": "camper", "posts": 0, "verified": False }.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(migrate_record({ "username": "", "posts": 0, "verified": False }, { "username": "camper" }), { "username": "camper", "posts": 0, "verified": False })`)
}})

migrate_record({ "username": "", "posts": 0 }, { "username": "camper", "role": "admin" }) should return { "username": "camper", "role": "admin", "posts": 0 }.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(migrate_record({ "username": "", "posts": 0 }, { "username": "camper", "role": "admin" }), { "username": "camper", "role": "admin", "posts": 0 })`)
}})

migrate_record({ "username": "", "email": "", "posts": 0, "verified": False, "role": "user", "banned": False }, { "username": "camper", "email": "camper@freecodecamp.org", "role": "admin" }) should return { "username": "camper", "email": "camper@freecodecamp.org", "role": "admin", "posts": 0, "verified": False, "banned": False }.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(migrate_record({ "username": "", "email": "", "posts": 0, "verified": False, "role": "user", "banned": False }, { "username": "camper", "email": "camper@freecodecamp.org", "role": "admin" }), { "username": "camper", "email": "camper@freecodecamp.org", "role": "admin", "posts": 0, "verified": False, "banned": False })`)
}})

--seed--

--seed-contents--

def migrate_record(schema, record):

    return schema

--solutions--

def migrate_record(schema, record):
    return {**schema, **record}