XׯdddlmZddlZddlmZedddZGdd eZeZeej d Z eej ej ej j d Z eej jej jej jd Zeej jej jej jej jd Zeej jej jej jej jdZeejej jej jej jdZeej jej jej jej jdZeej jej jej jej jdZeej jej jej jej jdZeej j ej jej j!ej jdZ"dS)) DefineModuleN)GenericMigrationDbMySQLMigrationz Oracle Corp.z1.0)nameauthorversionc@eZdZd dZdZdZdZdZdZdZ d Z d S) MySQLMigrationTc|SN)selfrlog dots_alloweds $..\modules\db_mysql_migration_grt.pymigrateIdentifierz MySQLMigration.migrateIdentifiers c d}|jr8||jjjj|jj|_|jduS|d||d|jjd|jddS)Nc.|D]}|j|kr|cSdSr )__id__)listoidos rfind_object_with_idzDMySQLMigration.migrateDatatypeForColumn..find_object_with_id"s/  8s??HHH#4rz1migrateTableColumnToMySQL: Cannot migrate column .z1 because migration of its datatype is unsupportedF) simpleTypeownersimpleDatatypesraddMigrationLogEntryr)rstate source_column target_columnrs rmigrateDatatypeForColumnz'MySQLMigration.migrateDatatypeForColumn!s     # ':':=;N;T;Z;jlymEmL(M(MM $ +47 7  & &q-BOBUBZBZBZ\i\n\n\no p p p5rc|Sr r )rr! default_valuer"r#s rmigrateColumnDefaultValuez(MySQLMigration.migrateColumnDefaultValue2src tj||||}dD]!}t||t||" fd|j||j|S)N) tableEngine nextAutoIncpassword delayKeyWritedefaultCharacterSetNamedefaultCollationName mergeUnion mergeInsert tableDataDir tableIndexDirpackKeysraidType raidChunks raidChunkSizechecksum rowFormat keyBlockSize avgRowLengthminRowsmaxRows partitionTypepartitionExpressionpartitionCountsubpartitionTypesubpartitionExpressionsubpartitionCountTc $g}|D]}tj}dD]!}t||t ||"||_|j||j|||S)N)rvaluecomment dataDirectoryindexDirectoryr<r;) grtclassesdb_mysql_PartitionDefinitionsetattrgetattrrsubpartitionDefinitionsextendappend)r part_listlsrcdstattrcopy_partitionss rrUz;MySQLMigration.migrateTableToMySQL..copy_partitions@s$""C+BBDDC u??T73+=+=>>>> %CI/66sCLg7h7hiiiHHSMMMMr)rmigrateTableToMySQLrKrLpartitionDefinitionsrN)rr! sourceTable target_schema targetTablerTrUs @rrVz"MySQLMigration.migrateTableToMySQL6s&:4 Ubcc S C CD Kw{D'A'A B B B B t       , 3 3OOKQ\Qq4r4r s s src |tj||||}dD]!}t||t||"|S)N) autoIncrement expression generatedgeneratedStorage)rmigrateTableColumnToMySQLrKrL)rr!r"rZr#rTs rr`z(MySQLMigration.migrateTableColumnToMySQLPsP(B4P]_jkk T G GD M4)E)E F F F FrcBtj||||}d|_|SNr)rmigrateTriggerToMySQL commentedOut)rr!source_trigger target_tabletarget_triggers rrcz$MySQLMigration.migrateTriggerToMySQLYs')?e^]ijj&'#rcBtj||||}d|_|Srb)rmigrateViewToMySQLrd)rr! source_viewrY target_views rriz!MySQLMigration.migrateViewToMySQL_s'&9${Tabb #$  rcBtj||||}d|_|Srb)rmigrateRoutineToMySQLrd)rr!source_routinerYtarget_routines rrmz$MySQLMigration.migrateRoutineToMySQLes')?e^]jkk&'#rN)T) __name__ __module__ __qualname__rr$r'rVr`rcrirmr rrr r s"4  rr cdS)NMysqlr r rrgetTargetDBMSNamerums 7rc8t||Sr )instancer)rrs rrrqs  % %dC 0 00rc8t||Sr )rwmigrateCatalog)r! sourceCatalogs rryryus  " "5- 8 88rc:t|||Sr )rw migrateSchema)r! sourceSchema targetCatalogs rr|r|zs  ! !%} E EErc:t|||Sr )rwrV)r!rXrYs rrVrVs  ' '{M J JJrc:t|||Sr )rwmigrateTableToMySQL2ndPass)r!rXrZs rrrs  . .uk; O OOrc:t|||Sr )rwmigrateTableForeignKeyToMySQL)r! source_fkrZs rrrs  1 1%K P PPrc:t|||Sr )rwrc)r!rerfs rrcrcs  ) )% N NNrc:t|||Sr )rwri)r!rjrYs rriris  & &uk= I IIrc:t|||Sr )rwrm)r!rnrYs rrmrms  ) )% O OOr)#wbrrHdb_generic_migration_grtr ModuleInfor rwexportSTRINGrurI GrtLogObjectr db_Catalogdb_migration_Migrationry db_Schemar|db_TablerVINTrdb_mysql_ForeignKey db_ForeignKeyrdb_mysql_Trigger db_Triggerrc db_mysql_Viewdb_Viewridb_mysql_Routine db_Routinermr rrrsm, 555555 \ 2NTY Z Z Z KKKKK%KKK\ >   3: 3:sz3;+CDD11ED1 3;)3;+Ms{Oeff99gf9 3;(#+*LckNcehepe{||FF}|F 3;')KS[MacfcncxyyKKzyK 37CK> @TVYVaVjkkPPlkP 3;2CK4VX[XcXqsvs~tHIIQQIIQ 3;/1SUXU`UkmpmxnBCCOOCCO 3;,ck.PRUR]Regjgrg|}}JJ~}J 3;/1SUXU`UkmpmxnCDDPPDDPPPr