def handle(self, *args, **options):
        dryrun = options.pop('dryrun')
        if dryrun:
            print '*** Running in dryrun mode. Will not save any conversion ***'

        for doc in Domain.get_all(include_docs=False):
            domain = doc['key']
            migrate_domain(domain, dryrun)
 def handle(self, domain, **options):
     dryrun = options.pop('dryrun')
     force_convert_columns = options.pop('force_convert_columns')
     if dryrun:
         print(
             '*** Running in dryrun mode. Will not save any conversion ***')
     migrate_domain(domain,
                    dryrun,
                    force_convert_columns=force_convert_columns)
Exemple #3
0
 def test_toggle_turned_on(self, _):
     self.assertFalse(
         toggle_enabled(NEW_EXPORTS.slug,
                        self.domain,
                        namespace=NAMESPACE_DOMAIN))
     migrate_domain(self.domain)
     self.assertTrue(
         toggle_enabled(NEW_EXPORTS.slug,
                        self.domain,
                        namespace=NAMESPACE_DOMAIN))
    def handle(self, **options):
        dryrun = options.pop('dryrun')
        limit = options.pop('limit')
        force_convert_columns = options.pop('force_convert_columns')
        count = 0

        if dryrun:
            print('*** Running in dryrun mode. Will not save any conversion ***')

        print('*** Migrating {} exports ***'.format(limit or 'ALL'))
        skipped_domains = []

        for doc in Domain.get_all(include_docs=False):
            domain = doc['key']

            if not use_new_exports(domain):
                if not force_convert_columns:
                    try:
                        metas = migrate_domain(domain, dryrun=True, force_convert_columns=force_convert_columns)
                    except Exception:
                        print('Migration raised an exception, skipping.')
                        traceback.print_exc()
                        skipped_domains.append(domain)
                        continue

                    has_skipped_tables = any(map(lambda meta: bool(meta.skipped_tables), metas))
                    has_skipped_columns = any(map(lambda meta: bool(meta.skipped_columns), metas))
                    is_remote_app_migration = any(map(lambda meta: bool(meta.is_remote_app_migration), metas))
                    if has_skipped_tables or has_skipped_columns:
                        print('Skipping {} because we would have skipped columns'.format(domain))
                        skipped_domains.append(domain)
                        continue

                    if is_remote_app_migration:
                        print('Skipping {} because it contains remote apps'.format(domain))
                        skipped_domains.append(domain)
                        continue

                if not dryrun:
                    print('Migrating {}'.format(domain))
                    try:
                        migrate_domain(domain, dryrun=False, force_convert_columns=force_convert_columns)
                    except Exception:
                        print('Migration raised an exception, skipping.')
                        skipped_domains.append(domain)
                        continue
                else:
                    print('No skipped tables/columns. Not migrating since dryrun is specified')
                count += 1
            if limit is not None and count >= limit:
                break

        send_HTML_email(
            'Export migration results',
            '{}@{}'.format('commcarehq-ops+admins', 'dimagi.com'),

            '''
            Skipped domains: {} <br />
            Successfully migrated: {}
            '''.format(
                ', '.join(skipped_domains),
                count,
            )
        )
Exemple #5
0
 def handle(self, domain, *args, **options):
     dryrun = options.pop('dryrun')
     if dryrun:
         print '*** Running in dryrun mode. Will not save any conversion ***'
     migrate_domain(domain, dryrun)
 def handle(self, domain, *args, **options):
     dryrun = options.pop('dryrun')
     if dryrun:
         print '*** Running in dryrun mode. Will not save any conversion ***'
     migrate_domain(domain, dryrun)
Exemple #7
0
    def handle(self, *args, **options):
        dryrun = options.pop('dryrun')
        limit = options.pop('limit')
        force_convert_columns = options.pop('force_convert_columns')
        count = 0

        if dryrun:
            print '*** Running in dryrun mode. Will not save any conversion ***'

        print '*** Migrating {} exports ***'.format(limit or 'ALL')
        skipped_domains = []

        for doc in Domain.get_all(include_docs=False):
            domain = doc['key']

            if not use_new_exports(domain):
                try:
                    metas = migrate_domain(domain, dryrun=True, force_convert_columns=force_convert_columns)
                except Exception:
                    print 'Migration raised an exception, skipping.'
                    traceback.print_exc()
                    skipped_domains.append(domain)
                    continue

                has_skipped_tables = any(map(lambda meta: bool(meta.skipped_tables), metas))
                has_skipped_columns = any(map(lambda meta: bool(meta.skipped_columns), metas))
                is_remote_app_migration = any(map(lambda meta: bool(meta.is_remote_app_migration), metas))
                if has_skipped_tables or has_skipped_columns:
                    print 'Skipping {} because we would have skipped columns'.format(domain)
                    skipped_domains.append(domain)
                    continue

                if is_remote_app_migration:
                    print 'Skipping {} because it contains remote apps'.format(domain)
                    skipped_domains.append(domain)
                    continue

                if not dryrun:
                    print 'Migrating {}'.format(domain)
                    try:
                        migrate_domain(domain, dryrun=False, force_convert_columns=force_convert_columns)
                    except Exception:
                        print 'Migration raised an exception, skipping.'
                        skipped_domains.append(domain)
                        continue
                else:
                    print 'No skipped tables/columns. Not migrating since dryrun is specified'
                count += 1
            if limit is not None and count >= limit:
                break

        send_HTML_email(
            'Export migration results',
            '{}@{}'.format('brudolph', 'dimagi.com'),

            '''
            Skipped domains: {} <br />
            Successfully migrated: {}
            '''.format(
                ', '.join(skipped_domains),
                count,
            )
        )
 def test_toggle_turned_on(self, _):
     self.assertTrue(toggle_enabled(OLD_EXPORTS.slug, self.domain, namespace=NAMESPACE_DOMAIN))
     migrate_domain(self.domain)
     self.assertFalse(toggle_enabled(OLD_EXPORTS.slug, self.domain, namespace=NAMESPACE_DOMAIN))