from datetime import date
from sys import stdout
import time
-
+import warnings
+import _mysql_exceptions
class DataMigrationTask(Component):
def setup(self, cfg, src_db, target_db, logger):
self.logger = logger;
def src(self, query, args = None):
- self.src_cursor.execute(query, args)
+ warnings.simplefilter("error")
+ try:
+ self.src_cursor.execute(query, args)
+ except _mysql_exceptions.Warning, e:
+ self.warn("MySQL warning: " + str(e))
+ warnings.resetwarnings()
def target(self, query, args = None):
- self.target_cursor.execute(query, args)
+ warnings.simplefilter("error")
+ try:
+ self.target_cursor.execute(query, args)
+ except _mysql_exceptions.Warning, e:
+ self.warn("MySQL warning: " + str(e))
+ warnings.resetwarnings()
def step(self, position = -1):
self.logger.progress(position)
from telemeta.core import *
from api import IDataMigrator
from core import DataMigrator, EnumMapper
-from _mysql_exceptions import IntegrityError
-from MySQLdb.constants.ER import DUP_ENTRY
class ItemsCopyMigrator(DataMigrator):
"""Perform a preliminary raw copy of the item table"""
",\n ".join(src_fields),
self.src_db_name)
- self.target_cursor.execute(query)
+ self.target(query)
self.target_cursor.execute("SELECT COUNT(*) FROM media_items")
self.stats['imported'] = self.target_cursor.fetchone()[0]