Xׯd~ddlZddlZddlmZdZee_dZGddejZGddeZdS) N) WizardPagec|tj}|||SN)mforms CodeEditor set_managedset_release_on_add)argscs &..\modules\migration_object_editing.py newCodeEditorr s4AMMOOO HcT|D]$}t|dsdS|j|kr|cS%dS)NoldName)hasattrr)listnameobjects r find_object_with_old_namer#sJvy)) 44 >T ! !MMM " 4rceZdZdZdZdS) ReplaceFormcd|_tj|dtjtjztjz||tjd}| || d| dtjd}| |dd| d| tj |ddtj}| d| |dd|d|d|d|d| tj ddd dd | tj d dd d dtj|_| |jd ddd tj|_| |jd dd dtjd}||dd| dtj|_|jd ||jddtj|_|jd ||jdd|d ddS)NF TzFind:rz Replace with:CancelOKiX) _canceledrForm__init__FormDialogFrame FormResizableFormMinimizable set_titlenewBox set_content set_padding set_spacingaddnewLabelnewTable set_row_countset_column_countset_row_spacingset_column_spacing newTextEntryfrom_type_entry to_type_entryadd_end newButton cancel_btnset_textok_btnset_size)selftitle descriptioncontentv_boxtableh_boxs r r#zReplaceForm.__init__-s T4)?@T)TU[Uk)klll u-&& !!!BB e$$ E5$''' " &/+..t<<<!! " %%%% A q!!! a      ### &/'**Aq!Q777 &//22Aq!Q???%244 $&1a333#022 $$aAq111 d##ud+++ " *,,   *** doud333&((  T""" dk5$/// c3rc|j|||j|j}||j|jfSr)r4 set_value run_modalr:r8get_string_valuer5)r<type_to_replace modal_results r showzReplaceForm.showYs[ &&777~~dk4?CC d2CCEEtGYGjGjGlGlmmrN)__name__ __module__ __qualname__r#rIrr rr,s8* * * XnnnnnrrceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZd%dZdZdZdZdZdZdZdZdZdZdZdZ d Z!d!Z"d"Z#d#Z$d$S)&MainViewctj||dd|j|ddi|_t |_d\|_|_dS)NzManual EditingT)wideObjectMigrationrr) rr#mainadd_wizard_page _object_dictset_source_objects_with_errors error_count warning_count)r<rTs r r#zMainView.__init__`scD$(8tDDDD !!$(9;KLLL+.55(/3,$,,,rc|jdtjd}|d|j|ddtjd}tjd|_|jd||jddtj|_ |j d|j gd |j |j | |j dd| tjd dd|j|ddd |_tjd |_|jd |jtj|jtj|j|jddtjtj|_|jd|jtjddd|jtjddd|jtjddd|j|j |j|j|jdd|j|jtj|_|j|j |j!d|j"dd|j#|jtjtj$tj%ztj&z|_'|j'd|j'tj(ddd|_)|j'tjddd|_*|j'tjddd|_+|j'tj(ddd|_,|j'tj(ddd|_-|j'tj.ddd|_/|j'tj(ddd|_0|j'tj(d dd|_1|j'tj(d!dd|_2|j'tjd"dd|_3|j'tjd#dd|_4|j'tj(d$dd|_5|j'tj(d%dd|_6|j'tj.d&dd|_7|j'tj.ddd|_8|j'tj(d'dd|_9|j'tj(d(dd|_:|j'tjddd|_;|j'|j'<d|j'=tj>|j' |j|j|j'dd|j'|j?|j'@dtj|_A|jA|jB|jACd)|jDd*d+|jACd,|jEd-d.|jACd/|jFd0d1|jACd2|jGd3d4|jACd5|jHd6d7|j'#|jAtjd8|_I|jId9|jItjJ|j|jIddtjKtjL|_M|jMNd:|jMd;tjd}tjO|_P|jPQtjR|jP |jS||jPddtjd}|Td<|d=tjU|_V|jVWd>|jVd?|jVXd@|jVY|jZ||jVddtjU|_[|j[WdA|j[dB|j[XdC|j[Y|j\||j[ddtjdD|_]|j]@d|j]XdE||j]ddtj^|__|j_WdF|j_dF| |j_dd|j_Y|j`tj^|_a|jaWdG|jadG| |jadd|jaY|jb||dd|jM||jMcdHdd|_d|e|j|jMddd|_f| dS)INrzvReview and edit migrated objects. You can manually edit the generated SQL before applying them to the target database.zPage DescriptionFTzMigrated ObjectsHeaderz Change View)zMigration Problems All ObjectsColumn MappingszView:z]No migration problems found. %d warning(s). Use the View pulldown menu to review all objects.zProblems Foundr]z Source Objectz Target ObjectzMigration Messagei,z Skip Object skip_objectr^z Source Schemadz Source Tablez Source Columnz Source Typez Source FlagsNNzSource Default ValuezSource Collationz Target Schemaz Target Tablez Target Columnz Target Typez Target FlagsAIzTarget Default ValuezTarget Collationz&Set Target Type of Selected Columns...zSet Target Typeset_target_typezFind and Replace Target Type...zReplace Target Typereplace_target_typez Find and Replace Target Flags...zReplace Target Flagsreplace_target_flagsz(Find and Replace Target Default Value...zReplace Target Default Valuereplace_target_default_valuez$Find and Replace Target Collation...zReplace Target Collationreplace_target_collationzgYou can rename target schemas and tables, and change column definitions by clicking them once selected.z Help Messagez%SQL CREATE Script for Selected Objectz SQL EditorrrzLock edited SQLzLock Edited SQLzLock the SQL code to the edited one, preventing automatic regenerations from discarding changes made directly to the SQL script.z Comment outz Comment OutzlMark the object to be commented out on the generated script, making it not get created in the target server.zCode is outdatedzThe locked SQL code seems to be outdated compared to a newer, automatically generated one. Unlocking the object will update it, but your changes will be lost.zDiscard Changesz Apply Changes)gr?r+rr-set_namer,r(tree_head_label newSelector_filter add_itemsadd_changed_callback_filter_changedr6_no_errors_text _no_errors set_styleBigStyleset_text_align MiddleLeft newTreeView TreeDefault_tree add_columnIconStringColumnType end_columns_selection_changedset_cell_edited_callback _cell_editednewContextMenu _all_menuadd_will_show_callbackall_menu_will_showadd_check_item_with_titleraset_context_menuTreeShowColumnLinesTreeShowRowLines TreeFlatList_columnsStringColumnTypeCOL_SOURCE_SCHEMACOL_SOURCE_TABLECOL_SOURCE_COLUMNCOL_SOURCE_TYPECOL_SOURCE_FLAGSCheckColumnTypeCOL_SOURCE_NOTNULLCOL_SOURCE_DEFAULTCOL_SOURCE_COLLATIONCOL_TARGET_SCHEMACOL_TARGET_TABLECOL_TARGET_COLUMNCOL_TARGET_TYPECOL_TARGET_FLAGS COL_TARGET_AICOL_TARGET_NOTNULLCOL_TARGET_DEFAULTCOL_TARGET_COLLATION COL_MESSAGEset_allow_sortingset_selection_modeTreeSelectMultiple_columns_cell_editedrI_menumenu_will_showadd_item_with_titlerfrgrhrirj help_label SmallStylenewPanelTitledBoxPanel_advboxr'r _code set_language LanguageMySQL _code_changedr* newCheckBox _lock_checkr9 set_tooltipadd_clicked_callback _lock_clicked_comment_check_comment_clicked_sql_outdated_labelr7 _revert_btn_discard_clicked _apply_btn_apply_clickedr; _advbox_shown go_advanced_filter_errors)r<r>hboxboxvboxs r create_uizMainView.create_uiis(    ###o'_`` /000 eT222}T""%/ABB %%h/// %ud333)++  m,,, WWWXXX ))$*>??? T\5$/// V_W--ud;;; ud+++ /"--   !1222 !!&/222 &&v'8999 $555'(:;;  M*** f9?CQVWWW f9?CQUVVV f9;NPSUZ[[[     ''(?@@@ T4000 ++D,=>>>.00 --d.EFFF 00@PR_anooo ##DN333*6+EfF]+]^d^q+qrr  0111!%!9!9&:QSbdgin!o!o $ 8 89TVdfikp q q!%!9!9&:UWfhkmr!s!s#}778OQ^`cejkk $ 8 89PR`begl m m"&-":":6;QSWY[]b"c"c"&-":":6;RTjloqv"w"w$(M$<$>> &&'OQUQegx{L M M M &&'H$Jbdy|Q R R R &&'I4Kdf|U V V V &&'QSWStwUWu v v v &&'MtOloIKe f f f &&tz222 /+TUU   000 !!&"3444 %666v'<==  FGGG l+++mD!!)++   4555 ''(:;;;  D$'''}U##  !-// !!"3444 !!"3444 $$&h i i i --d.@AAA !5$///$022 $$]333 $$]333 '')W X X X 001FGGG $eT222#)?3E#F#F   %%e,,,  ,,.N O O O )5$777!+-- !!"3444 !!"3444 T%ud333 --d.CDDD *,,   111   111 T_eT222 ,,T-@AAA eT"""  b#&&&!  ud333# rcj|jj|dSr)rTplan generateSQLrr<s r _regenerateSQLzMainView._regenerateSQLs0 ""$$$ !!!!!rc|j}d|_|dkr|jd|jsld|_t |_||j j j j |j j j j ||jdkr|jd|jd|jd|jd|jr||j|j|jz|jddS|jd|jd|jd|jd|jddS|dkr|jd|jd|jd|jd|jd|jd|jrnd|_t |_||j j j j |j j j j |dSdS|dkr|jdd|_|jd|jd|jd|jd|jddS|jd|jd|jd|jd|jd|jddS)NFrTrr)roget_selected_index_showing_columnsrrIrrWrXscan_objects_with_errorsrTrmigrationSourcecatalogmigrationTargetrefresh_full_treerYr{rrmadvanced_buttonrrrtr9rsrZ)r<is r rrzMainView._filter_changeds L + + - - % 66 M  u % % %& )&*#36550--din.L.TVZV_VdVtV|}}}&&(((1$$ &&&$$U+++$))%000$))%000%'$$&&&(()=@R)RSSS$$T***** %%%$$T***$))$///$))$///$$U+++++ !VV O  ' ' ' JOOD ! ! ! O  & & &  % %d + + +  % %d + + + M  u % % %" )&+#36550--din.L.TVZV_VdVtV|}}}&&(((((  ) ) !VV O  ' ' '$(D ! JOOE " " " O  & & &  % %d + + +  % %d + + + M  t $ $ $ $ $ O  ' ' ' JOOD ! ! ! O  & & &  % %d + + +  % %d + + + M  u % % % % %rcL|dkr|}|r|j|d}|rt|tjjrt jdd||d|d| d\}}}||_ | |dstd|zn>#t$r1} tjdd | zd d d Yd} ~ dSd} ~ wwxYw|d|dz|jz|dSt|tjjst|tjjsst|tjjsTt jdd |j d|d|d|||_ |dStjd dd d d dSdSdSdS)Nr Migrationz,User changed target column definition from '' to ''  'Could not parse column type string '%s'Change Column TypeError changing column type: %srr_zUser renamed target object 'z Rename Objectz+The object cannot be renamed from the tree.)get_tagrVget isinstancegrtclasses db_Columnlog_info get_string partitionr setParseType Exceptionr Utilities show_error set_stringformattedRawTyperdb_View db_Routine db_Trigger show_message) r<nodecolumnvalueoidrrseptypeexcs r rzMainView._cell_edited1s Q;;,,..C D*..sD99D!&#+*?@@D [[oso~o~@FpGpGpGpGINININ3OPPP*///$*?*?c4&* ##)#6#6tT#B#Bb&/0Y\`0`&a&a ab(###",778LNnqtNtvz|~ACDDD"FFFFF#49V5L+LMMM++-----' 0CDDDZX^`c`k`vMwMwDAKLRTWT_TjAkAkD [[_e_j_j_jlqlqlq2rsss5111&+ ++-----(55oGtvz|~ACDDDDD/ ; D DDDs,(C D&D  Dc|j|d}|r&t|tjjr|jjddr_tj dddddtj krdSt j dd |jzd|jjd<||jkrT||_|||t j dd |jd |d |dS||jkr ||dst)d |zn>#t($r1}tj dd|zdddYd}~dSd}~wwxYw|||t j dd|jd |d |dS||jkr||||j|j|t j dd|jd |d |dS||jkrv||t;|dkt;|dk|_t j dd|jd |d |dS||jkrv||t;|dkt;|dk|_ t j dd|jd |d |dS||j!kr_|||||_"|dk|_#t j dd|jd |d |dS||j$krX|||||_%t j dd|jd |d |dSdSdSdS)Nmigration:lock_temp_sqlFzObject is LockedzThe object was manually edited and is locked against updates. Would you like to unlock the object discard your edits to apply this change?z Unlock Objectrr_rz2User unlocked object '%s' by changing columns treezUser renamed target column 'rrrrrrz$User changed target column type of 'z%User changed target column flags of 'rz-User changed target column autoIncrement of 'z)User changed target column isNotNull of 'NULLz'User changed target column default of 'z)User changed target column collation of ')&rVrrrrrrowner customDatarrr ResultCancelrrrrrrrrrrflags remove_allextendsplitrset_boolint autoIncrementr isNotNullr defaultValuedefaultValueIsNullr collationName)r<rrrrrs r rzMainView._columns_cell_editedLs"&&t||~~t<< 1 &j)>??1 &|&**+DeLL K#001CFR*98RIILRL_``F [*^agal*lmmmEJ '(AB///# ... [[W]WbWbWbdididi*jkkk##%%%%%4///!..ud;;['(QTY(YZZZ[ $//0DFfilFlnrtvxz{{{FFFFF... [[_e_j_j_jlqlqlq*rsss##%%%%%4000... ''))) ##EKKMM222 [[`f`k`k`kmrmrmr*sttt##%%%%%4--- fc%jjAo666(+E a$ [[hnhshshsuzuzuz*{|||##%%%%%4222 fc%jjAo666$'JJ!O  [[djdododoqvqvqv*wxxx##%%%%%4222...&+#,1VO) [[bhbmbmbmototot*uvvv##%%%%%4444...',$ [[djdododoqvqvqv*wxxx##%%%%%c1 &1 &1 &1 &Z54s;(E$$ F.&FFcT|jr|j}n|j}|rk|rW|}|j|d}t|tj j r|j }|SdSr) rrget_selected_noder{rrVrrrrrr)r<selectedrrs r _selected_objectzMainView._selected_objects   6}6688HHz3355H  ((** ""$$C&**355F&#+"788 &Mtrc|}|r|jd}|jr2|jd|ddznK|dr6|j|dddd|j|j | dSdS)NFz--  z -- ) rrget_textr get_activer9replace startswith set_enabled commentedOutr)r<rtexts r rzMainView._comment_clickeds&&((  ":&&u--D"--// I ##E$,,tW*E*E$EFFFF??5))IJ'' Wd(C(CABB(GHHH J " "v':#: ; ; ;    ! ! ! ! ! " "rc|}|rj|j|jd<|jsD|jdr,|jd|_|dSdSdSdS)Nrzmigration:new_temp_sql)rrr rrtemp_sqlrr<rs r rzMainView._lock_clickeds&&((  .;?;K;V;V;X;XF 7 8# .$(()ABB.&,&78P&QFO++-----  . . . ...rc<|}|rt|dr|j|j|j|j |j|jdk|j t|j dd|j d|jd|jddS|jd|jd|jd|j d|j ddS)NrrrFTr_)rrrr9rrrr set_activerboolrrrrrrs r rzMainView._selection_changedsq&&((  gfj11  J   0 0 0 J " "v':#: ; ; ;   * *6+>!+C D D D   ' 'V->-B-BC\^c-d-d(e(e f f f L $ $T * * * O ' ' . . .   ( ( / / / F B u%%% &&u--- ##E***   '''''rcn|jd|jddS)NT)rrr)r<xyzs r rzMainView._code_changeds5 ##D))) $$T*****rc|jd}|}|r/||_|j|_d|jd<|dS)NFTr) rr rrrr rrr)r<rrs r rzMainView._apply_clickedsuz""5))&&((  @"FO"&"5"@"@"B"BF ;?F 7 8 !!!!!rc.|dSr)rrs r rzMainView._discard_clickeds !!!!!rc|j |_|jr|jdn|jd|j|jdS)NzHide Code and MessageszShow Code and Messages)rrr9rrIrs r rzMainView.go_advancedsn!%!33   D  ) )*B C C C C  ) )*B C C C $,-----rc|r4|jjt j|dSdSr)validaterTrmigrationUpdatergo_nextrs r r#zMainView.go_nextsI ==?? % IN * * , , ,  t $ $ $ $ $ % %rctj|||r*||dSdSr)rpage_activatedrrrefresh)r<advances r r%zMainView.page_activatedsJ!$000    " " " LLNNNNN  rc |jj}|jjj|jjjkr|jjjD]}|jjjD]}|j|j kr|j |j krtj ddddd|j d}|dkrtjddn3|j ||j d Sd S) NzValidation ErrorzThe source and target are in the same server and a schema being migrated has identical names. Please rename the target schema to allow the migration to continue.rr_r]rkrz1Could not get the index of the "All Objects" viewFT)rTrr connectionhostIdentifierrrschematarrrrrroindex_of_item_with_titler log_warning set_selectedcall_changed_callback)r<rschematschemaidxs r r!zMainView.validatesy~   * 9T=Q=\=k k k.6? ) )#3;D ) )G&+55"<6;66",778J!E $b"...#',"G"G "V"VC"byy # =p q q q q $ 9 9# > > > $ B B D D D#(555 )trc|jjj||}|s%|jjj|d}|rxd}d}d}|jD]D}|jdkr)|j}|jdkr|dz }%|jdkr|dz }6|jr|j}E||zdkr|||pdfS||zdkr|||dzfS|||fSdS)Nrrrr_z, ...)rrzObject was not migrated)rTrstatefindMigrationLogEntryentries entryTyper)r<sourcetarget log_entryerrorswarnings first_problementrys r get_log_entry_forzMainView.get_log_entry_forsIN(>>vvNN  Q ,BB64PPI  5FH M"* 3 3?a''$)JM!++! A-- A z3(- h!##-*=2>>(?Q&&"HmG.CDD"Hm<<54rrc|||\}}}||||r||d|r||d|||fS)Ntask_error.pngtask_warning.png)r?r set_icon_path)r<rr8r9rerrwarrs r _set_log_entry_forzMainView._set_log_entry_fors{//??S$ %%%  9   v'7 8 8 8  ;   v'9 : : :C~rc`|r|n|j}d}d}t|tjjrd|jz}|r d|jz}|r5|d|j |z| d|n|dd|r5| d||d|j |zn|dd|r)| |j ||j |j <|S)Nr_rrzn/ar) add_childr{add_noderrrrrrrrCset_tag__id__rV)r<parentr8r9iconrsextratextras r _add_nodezMainView._add_node!s>%+Fv!!!1D1D1F1F fck3 4 4 8F33F 8 77  & OOAv{61 2 2 2   q$ ' ' ' ' OOAu % % %  &   q$ ' ' ' OOAv{61 2 2 2 2 OOAu % % %  6 LL ' ' '/5D fm , rc ,t|j|j}||||d}||||\}}}|rMdD]I\} } } |} | d| | dd| d| | ddt|| } t|| }d}d}| D]0}|j r|j |j vrt||j}|r4| dkr.| |r|| ||d}n|| ||| }||||\}}}||z }||z }| dkrB|j D]9}|rt|j |j}nd}||||d :| d krA|j D]9}|rt|j |j}nd}||||d :2|r-| d d | d d nE|r-| d d| d dn| d d||z }||z }K|r-|d d |d d nE|r-|d d|d dn|d d||fS)Ndb.Table.16x16.png))Columnsdb.Column.nn.16x16.pngcolumns)Indiceszdb.Index.16x16.pngindices) ForeignKeyszdb.ForeignKey.16x16.png foreignKeys)Triggerszdb.Trigger.16x16.pngtriggersrfolderrrUdb.Column.pk.16x16.pngrWzdb.Column.16x16.pngrYrrA Migration errors, expand to viewrB"Migration warnings, expand to viewr_)rtablesrrPrFrHrrCgetattrrrKrXisPrimaryKeyColumnrU)r< tables_noder1stablettable table_node total_errs total_warnsrcaptionrM list_namesub_node_groupslisttlistsub_errs sub_warnssitemtitemsub_nodeerrswarnsicolumnticolumns r _add_table_nodezMainView._add_table_node;s*7>6;GG^^KAUVV (,(?(? FTZ([([% K 4 )-_3 )3 )(y",!5!5!7!7))!W555,,Q999))!W555,,Q999 22 22 "__E*!u|4Cc/c/c 5eUZHHEVi!7!7F>.%Ph#i#i#'>>.%PT#U#U(,(?(?%QV(W(W%D%$H&I I--',}__G$0+DU]T[T`+a+a+/ NN8WhH]^^^^ _ #m33',}__G$0+DU]T[T`+a+a+/ NN8WhH]^^^^5"004DEEE"--a1STTTT5"004FGGG"--a1UVVVV"--a444h& y(  )  $ $Q(8 9 9 9  ! !!%G H H H H  )  $ $Q(: ; ; ;  ! !!%I J J J J  ! !!R ( ( (;&&rcfd}|jD]}|||j\}}|rj|j|s;|jD]t}jjjd|r)|||j\}}|r>j|jj|j|s|j D]u} || |j \} }|r]j| jj|jj|jv|j D]u} || |j \} }|r]j| jj|jj|jv|j D]u} || |j \}}|r]j| jj|jj|jv|j D]u}|||j \}}|r]j|jj|jj|jvv|j D]|}jjjd|r(|||j \}}|r>j|jj|j}|jD]|}jjjd|r(|||j\}}|r>j|jj|j}dS)Nct||j}||\}}}|dkp|dk}||fSNr)rrr?)obj object_listtobjrDrEtxt has_errorsr<s r check_objectz7MainView.scan_objects_with_errors..check_objectsL,[#(CCD 223==MCc7-cAgJ# #rr`viewsroutines)r+rXr,rKr`rTrrisObjectIgnoredrUrWrYr[rr)r<source_catalogtarget_catalogrr0r1rrArertcolumnindextindexfktfktriggerttriggerviewtviewroutinetroutines` r rz!MainView.scan_objects_with_errorss: $ $ $ $ $ %-4 H4 HF".,v~7N"O"O GZ D044V]CCC  L L9>1AA(ERR%1\%%H%H" H488FFF488GGG#mLLF*6,vv~*N*N'GZ!L8<1AA'4PP$0Lw}$E$E!zH488EEE488GGG!? H H9>1AA*gVV'3|GW=M'N'N$*H488HHH488GGG  H]4 H4 Hrct|_||jjjj|jjjj|| dSr) rWrXrrTrrrrrrefresh_columns_treers r r&zMainView.refreshsb+.55( %%din&D&LdinNlNtuuu     !!#####rc |j|jjjj}|jjjj}|jD]}|rt|j|j }nd}|j D]}|rt|j |j nd}|s$|j D]}|rt|j |j nd}|j } d} |j |rd} | |j|j | |jd| |j|j | |j| | |j|j | |j|j| |jd|j| |j|jdk| |j|j| |j|j|r | |j |j |r;| |j!d| |j!|j |r|d} |j |rd} | "|j#||j$|j#<| |j%| | |j%|j | |j&|j| |j'd|j| |j(|j)dk| |j*|jdk| |j+|j| |j,|j|-| |||j.| |j.d͐dS)NrTr]rR rzThe column was not migrated)/rclearrTrrrrr+rrr`rUrIrrbrrrCrrrrrjoinrrrrrrrrrrrJrKrVrrrrrrrrrFr) r<rrsschemar1rdrescolumnrrrMs r rzMainView.refresh_columns_trees 7?7?%.2 Y2 YG 3N4KW\ZZ!., Y, YSZd27>6;OOO`d%~(Y(YGY_i7 UUUeiG=1133D3D}77@@87OOD$:GLIII&&t'<>RSSSOOD$96;GGG&&t'=tDDDOOD$:GLIIIOOD$8':RSSSOOD$9388GM;R;RSSSMM$"97;LPQ;QRRROOD$;W=QRRROOD$=w?TUUUN(> MMML**4+@BVWWW(=v{KKKY7"=;;GDD<#;D W^444 MMM(VWWW(=sxx ?V?VWWW d&8':OST:TUUU d&=w?PTU?UVVV(?AUVVV(A7CXYYY//gwHXYYYY(8:WXXXXQ(Y , Y 2 Y2 Yrc |j|jjjj}|jjjj}i|_d\|_|_ |j s'|j d}|r| dd|d|j D]}|j r|j|jvr|rt!|j |j}nd}| d||d}|||||}|dd|dd|dd|ddd\}} |r|jD]<} |j r| j|jvr|||| \} } || z }| | z } =|xj|z c_|xj | z c_ |r-|d d |d d nE| r-|d d |d d n|d d|jjjjddD]} | \}}}|dz}|}|d||dd|d||ddt3||}t3||}d\}}|D]j}|j r|j|jvrt!||j}| ||||}||||\}}}||z }||z }k|xj|z c_|xj |z c_ |r.|d d |d d \|r.|d d |d d |d d||j s'|j d}|r| dd|d|dS)NrSzmigration:preamblezGrtObject.16x16.pngzdb.Schema.16x16.pngrTablesrr\rrAr^rBr_r_z .16x16.pngzmigration:postamble)r{rrTrrrrrVrYrZrrrPr+rKrXrrrFrHrrCr`rwsupportedObjectTypesraexpandr)r<rrr{rr1 schema_nodercsch_errs sch_warnsrdtab_errs tab_warnsitemrj struct_namerirMrkrlrm group_errs group_warnsrprqrrit_errsit_warnsrs r rzMainView.refresh_full_trees  7?7?/3,$," G +,@AC GtT30EFFF%.H !H !G" w~T=]']'] 3N4KW\ZZ..wAVWWK  # #K' B B B%//11K  " "1h / / /  " "1h / / /  % %a 2 2 2  % %a 2 2 2"( Hi3 9%n++F*!v}DDd/d/d *.*>*>{GU[*\*\'Hi(H*II  H,  ""i/""2--a1ABBB**1.PQQQQ2--a1CDDD**1.RSSSS**1b111 IN:OPQPRPRS99D6:3I{G&|3D%0%:%:%<%>.%PT#U#U262I2I(TY[`2a2a/4"g- #x/ $$ 2$$&&+5&&!9&44Q8HIII&11!5WXXXX$9&44Q8JKKK&11!5YZZZZ&11!R8888    " G +,ABC GtT30EFFF !!!!!rc|j}|}|r5||jvr.|j|}t |dr|j |_dSdSdSdS)Nr)r{rrrVrr)r<rtagr{s r razMainView.skip_object^sz++--llnn  83$+++#C(CsN++ 8'*'7#7    8 8++ 8 8rc|j}|}|jdd|r||jvr|j|}t|drr|jd|j dk|j dvr5|jdddSdSdSdSdS)NrFr)zdb.Indexz db.ForeignKeyT) r{rrrget_itemrrVr set_checkedr__grtclassname__)r<rrrr{s r rzMainView.all_menu_will_showfsz++--llnn ""..u555  A3$+++#C(CsN++ A''**66s7G17LMMM'+HHHN++A..::4@@@@@  A A++ A AHHrc|jdt|jdkdS)Nrr)rrrlenr get_selection)r<rs r rzMainView.menu_will_showqsH A**3t}/J/J/L/L+M+MPQ+QRRRRRrc|j}|rGtjddd\}}|r#|D]"}|||j|dSdSdS)NzChange target columns typezPlease specify the target typer_)rrrr request_inputrr)r<selected_nodesretrns r rfzMainView.set_target_typets4466  M(667SUuwyzzIC M'MMA--a1EtLLLL  M M M MMMrc|jd}|r||}t||}|t |\}}}|rut |jD]P} |j| } | ||kr| | ||MdSdSdSrz) rrrrrIstrrangecount node_at_rowr) r<r=r>r selected_node to_replace repl_formr replace_withrrs r replace_targetzMainView.replace_target|s 3355a8  L&11$77J#E;77I,5NN3z??,K,K )C\ Lt}224455LLA=44Q77Dt,, ::11$lKKK L L L LLLrc>|dd|jdS)NzFind and Replace Target TypezcTarget/migrated data types matching the search term will be replaced for all columns of all tables.)rrrs r rgzMainView.replace_target_types3 :B 0 2 2 2 2 2rc>|dd|jdS)NzFind and Replace Target Flagsz^Target/migrated flags matching the search term will be replaced for all columns of all tables.)rrrs r rhzMainView.replace_target_flagss0 ;| 1 3 3 3 3 3rc>|dd|jdS)Nz%Find and Replace Target Default ValuezgTarget/migrated default values matching the search term will be replaced for all columns of all tables.)rrrs r riz%MainView.replace_target_default_values3 CF 3 5 5 5 5 5rc>|dd|jdS)Nz!Find and Replace Target CollationzcTarget/migrated collations matching the search term will be replaced for all columns of all tables.)rrrs r rjz!MainView.replace_target_collations3 ?B 5 7 7 7 7 7rN)r)%rJrKrLr#rrrrrrrrrrrrrrr#r%r!r?rFrPrwrr&rrrarrrfrrgrhrirjrMrr rOrO_s<444HHHV"""3&3&3&lDDD63&3&3&l    " " " ...(((&+++ """"""...%%% *555<4A'A'A'J;H;H;H|$$$6Y6Y6Yr\"\"\"~888 A A ASSSMMM L L L222 333 555 77777rrO) rr workbench.uirr rr"rrOrMrr rs, ######   %0n0n0n0n0n&+0n0n0nf{ 7{ 7{ 7{ 7{ 7z{ 7{ 7{ 7{ 7{ 7r