def map_server_options()

in mssqlscripter/argparser.py [0:0]


def map_server_options(parameters):
    """
        Map short form to long form name and maps Azure versions to their appropriate editions.
    """
    azure_server_edition_map = {
        u'AzureDB': u'SqlAzureDatabaseEdition',
        u'AzureDW': u'SqlDatawarehouseEdition',
    }

    on_prem_server_edition_map = {
        u'Standard': u'SqlServerStandardEdition',
        u'Personal': u'SqlServerPersonalEdition',
        u'Express': u'SqlServerExpressEdition',
        u'Enterprise': u'SqlServerEnterpriseEdition',
        u'Stretch': u'SqlServerStretchDatabaseEdition',
    }

    on_prem_server_version_map = {
        u'2005': u'Script90Compat',
        u'2008': u'Script100Compat',
        u'2008R2': u'Script105Compat',
        u'2012': u'Script110Compat',
        u'2014': u'Script120Compat',
        u'2016': u'Script130Compat',
        u'vNext': u'Script140Compat',
    }

    target_server_version = parameters.ScriptCompatibilityOption
    target_server_edition = parameters.TargetDatabaseEngineEdition
    # When targetting Azure, only the edition matters.
    if u'Azure' in target_server_version:
        # SMO requires 120 compat or higher when scripting Azure or AzureDW.
        parameters.ScriptCompatibilityOption = u'Script130Compat'
        parameters.TargetDatabaseEngineEdition = azure_server_edition_map[
            target_server_version]
        parameters.TargetDatabaseEngineType = u'SqlAzure'

    else:
        parameters.ScriptCompatibilityOption = on_prem_server_version_map[target_server_version]
        parameters.TargetDatabaseEngineEdition = on_prem_server_edition_map[
            target_server_edition]
        parameters.TargetDatabaseEngineType = u'SingleInstance'

    return parameters