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