{
    use esmith::DomainsDB;

    my $domain = $DB->get('DomainName');
    return unless defined $domain; # Can't migrate without domain name

    my $DomainName = $domain->value;

    # Force lower case
    $DomainName = lc($DomainName);
    $domain->set_value($DomainName);

    # Force lower case for SystemName as well, while we are at it
    my $system = $DB->get('SystemName');
    if ($system)
    {
	my $SystemName = lc($system->value);
	$system->set_value($SystemName);
    }

    my $domains = esmith::DomainsDB->open ||
	esmith::DomainsDB->create;

    # And update domains db shadow
    ($domain) = $domains->get_all_by_prop(SystemPrimaryDomain => 'yes');

    if (defined $domain)
    {
       # Nothing to do if it hasn't changed.
       return if (lc($domain->key) eq "$DomainName");

       # Otherwise we need to delete the old domain
       $domain->delete;
    }

    # And create the new.
    $domain = $domains->get($DomainName) ||
		    $domains->new_record($DomainName,
			{
			    type => 'domain',
			    Content => 'Primary',
			    Description => 'Primary domain',
			});
    $domain->merge_props(SystemPrimaryDomain => 'yes', Removable => 'no');
}
