Xׯd@ddlZddlmZddlZddlmZedddZGdd eZeZe ej d Z e ej ej ej j d Ze ej jej jej jd Ze ej jej jej jej jd Ze ej jej jej jej jdZe ejej jej jej jdZe ej jej jej jej jdZe ej jej jej jej jdZe ej jej jej jej jdZ e ej j!ej jej j"ej jdZ#e ej jej jej jdZ$e ej%ej j&fej jdZ'dS)N) DefineModule)GenericMigrationDbSQLAnywhereMigrationz Oracle Corp.z1.0)nameauthorversionc0eZdZdZdZdZfdZxZS)SQLAnywhereMigrationc | |jjj}|}d gdtfgdtfgddfddg fdfd g fd fd g fd fd dg fdfg}d}|jrR|jj}|rD|jr |jjn|jjj} | jdkr|d}|r |}| dkr |dvr|j ddS|D]} || dvr | d||jr |jjpd} |dvrj| dvrT|j j |j j|j jfdkr+| d krd}}d}|d||d|d| dd}#t"$r d}|d||d|zYwxYw|S)Nc\tj||td|d|ddS)N"z)" does not match the regular expression "T)rematch ValueError)re_strtargets *..\modules\db_sqlanywhere_migration_grt.pyraise_on_no_matchzISQLAnywhereMigration.migrateColumnDefaultValue..raise_on_no_match&s<x''/ jV\V\V\^d^d^d!efff4)TINYINTSMALLINTINTEGERBIGINT)NUMERICDECIMALFLOATREALDOUBLE) CHARVARCHARNCHARNVARCHARTEXTNTEXTUNIQUEIDENTIFIERSTRBINARY LONG BINARYXMLcdS)NT)_s rz@SQLAnywhereMigration.migrateColumnDefaultValue...s HLrVARBIT LONG VARBITcd|S)Nz[Bb]?'?[10]+'?r)valrs rr+z@SQLAnywhereMigration.migrateColumnDefaultValue../s4E4EFWY\4]4]rDATEcd|S)Nz(\d{4}|\d{2})-\d{1,2}-\d{1,2}r)r/s rr+z@SQLAnywhereMigration.migrateColumnDefaultValue..0s#4#45UWZ#[#[rTIMEcd|S)Nz"(\d{1,2} )?\d{1,2}:\d{0,2}:\d{0,2}r)r/s rr+z@SQLAnywhereMigration.migrateColumnDefaultValue..1s#4#45Z\_#`#`r TIMESTAMPDATETIMEc@d|S)NzR((\d{4}|\d{2})-\d{1,2}-\d{1,2}( (\d{1,2} )?\d{1,2}:\d{0,2}:\d{0,2})?|NULL|NOW\(\)))upperr/s rr+z@SQLAnywhereMigration.migrateColumnDefaultValue..2s)4E4Eegjgpgpgrgr5t5trnumericz' AUTOINCREMENTAUTO_INCREMENTr)r5r6)zNOW()zCURRENT TIMESTAMPCURRENT_TIMESTAMPr5)r?r>zDefault value z. is not supported for a MySQL column of type "z ".Removed!z+Default value %s is not supported. Removed!)ownerintfloat simpleTypergroupuserType actualTypestripr8flagsappendr majorNumber minorNumber releaseNumberaddMigrationLogEntry Exception) selfstate default_value source_column target_columntarget_catalogtarget_default_valuevalue_validatorssource_datatyperEvalue_validatortarget_datatypers @rmigrateColumnDefaultValuez.SQLAnywhereMigration.migrateColumnDefaultValue"s)&,28,    : 9 93 ? > > > F | | |LL M &(](](](] _X[[[[ ]X```` b: &)t)t)t)t v    # >+6;O >:G:R 066XeXnXyX:**$1$7$7$=$=M  K#0 ""$$77OO{<{<{#**+;<<<r#3 K K"oa&888K**=999 +8*B*d}G_Gd*jhj*.GGGML_L_LaLaffMfMf . 6 BNDZDfhvh~iM NQZ Z Z$3{$B$B;N$8$8;=$8$)$>$>q-Q^Q^LLLN]N]N]/^%_%_%_%_8K 4%aaa/1,221m]"OR_"_aaaaaa9,$#s9F'F87F8c ^|j}td|jD}|j}|s|jry|jj}|sG|jjdr(|d|_|jjdd|_dS|j |jj |rE|j }d}|dkrJd|j cxkrd krnnd}nd|j cxkrd krnn|jjd krd }nd}n{d }nw|dkr|j d krd}nbd }n^|dkrd}nT|dkrd}nJ|dvr |}d|_n;|dvrd}n3|dkrd}d|_d|_n|dkrd}d|_d|_n|dkrd}n|dkrd}n|dkrd |j cxkrd!krnnd}nd"}n|d#krd"}n|d$vrd }n|d%krKd |j cxkrd&krnnd'}nd&|j cxkrd(krnnd)}nd(|j cxkrd*krnnd+}nrd"}no|d,krd"}nf|d-krd.}n]|d/krd/}nT|d0krd0}nK|d1krd0}|d||d2n*|d3kr d}d4|_ n|d5rd}n|}||vr|||_nOt'jd6d7|d8|d9|d:||d;|j d<|jj d=|d>d?SdS|d:||d@|j d<|jj dA|jdBd?S)CNc3LK|]}|j|fV dSN)rr8).0datatypes r z@SQLAnywhereMigration.migrateDatatypeForColumn..bs5 s s8=#6#6#8#8("C s s s s s srzenum(ENUMTr<r rir? MEDIUMTEXTLONGTEXTrBITrrINT)rrhr)rrr SMALLMONEY MONEYrrzDOUBLE PRECISIONrr,r=@LONGBLOBr-)r'r#NTEXTr%TINYBLOBBLOB MEDIUMBLOBr&r5r6r1r3DATETIMEOFFSETz6Source column type DATETIMEOFFSET was migrated to TIMEUNIQUEIDENTIFIERSTR$ST_z&SQLAnywhere migrateTableColumnsToMySQLzCan't find datatype z for type  zCould not migrate column "z" in "z": Unknown datatype "r Fz"Could not migrate type of column "z" ()) targetCatalogdictsimpleDatatypesrDrFrG sqlDefinition startswithdatatypeExplicitParamsrIextendrr8lengthrrK precisionscalerNgrt log_warningrAformattedRawType) rPrQrSrTr~mysql_simpleTypes source_typerXrZs rmigrateDatatypeForColumnz-SQLAnywhereMigration.migrateDatatypeForColumn_sD+  s sTaTq s s sss#.  E}5 E'0;K =#9#G#R#RSZ#[#[ + 8I8I8I6;;;7H7N7S7S7SUfUkUkUk7=7K7K7KM^MlMlMlnoNoNoN8000(,=,HHH_knoKoP`P /0MPVP[0[\(9(DF%$5$ B BBrctjtjtjjj}tj}d|_d|_d|_| ||S)Nz&sqlanywhere:migrateTimestampAsDatetimezeMigrate TIMESTAMP values as DATETIME by default. TIMESTAMP values in MySQL have a limited time range.boolean) rListOBJECTclassesdb_migration_MigrationParameter__grtclassname__rcaption paramTyperJ)rQlistparams rgetMigrationOptionsr5s\ 8CJ K \ ] ]D K 7 7 9 9E9EJ{EMEOKK Kr)(rwbrrdb_generic_migration_grtr ModuleInfor rexportSTRINGrr GrtLogObjectr db_Catalogdb_migration_Migrationr db_Schemardb_Tablerrhrdb_mysql_ForeignKey db_ForeignKeyrdb_mysql_Trigger db_Triggerr db_mysql_Viewdb_Viewrdb_mysql_Routine db_RoutinerrLISTrrr)rrrs,  555555 \ 8.Z_ ` ` ` ZZZZZ+ZZZx  ! ! 3: 3:sz3;+CDD11ED1 3;)3;+Ms{Oeff::gf: 3;(#+*LckNcehepe{||FF}|F 3;')KS[MacfcncxyyKKzyK 37CK> @TVYVaVjkkPPlkP 3;2CK4VX[XcXqsvs~tHIIQQIIQ 3;/1SUXU`UkmpmxnBCCOOCCO 3;,ck.PRUR]Regjgrg|}}JJ~}J 3;/1SUXU`UkmpmxnCDDPPDDP 3;)3;+Ms{OeffCCgfC CHckIJCKLnoo  po   r