예제 #1
0
    def handle_noargs(self, **options):
        from django.conf import settings
        from django.db import models
        from django.core.management.sql import  emit_post_sync_signal
        from django.db.utils import DEFAULT_DB_ALIAS
        from django.core.management import call_command
        
        ignore_reset = options.get('ignore_reset', False)
        rebuild_haystack = options.get('rebuild_haystack', False)
        db = options.get('database', DEFAULT_DB_ALIAS)       
        database_config = settings.DATABASES[db]
        
        if not ignore_reset:
            reset_schema(database_config)

        # init db schema
        call_command('syncdb', interactive=False)
        
        # Emit the post sync signal. This allows individual
        # applications to respond as if the database had been
        # sync'd from scratch.
        emit_post_sync_signal(models.get_models(), 0, 0, db)
        # get all fixtures
        fixtures_blocks = self._find_fixtures(settings.PROJECT_ROOT)
        
        for fixtures in fixtures_blocks:
            sys.stdout.write("Load fixtures: %s\n" % " ".join(fixtures))
            call_command('loaddata', *fixtures)
        
        if rebuild_haystack:
            call_command('rebuild_index', interactive=False)
예제 #2
0
    def handle_noargs(self, **options):
        from django.conf import settings
        from django.db import models

        from django.db.utils import DEFAULT_DB_ALIAS
        from django.core.management import call_command

        ignore_reset = options.get('ignore_reset', False)
        rebuild_haystack = options.get('rebuild_haystack', False)
        db = options.get('database', DEFAULT_DB_ALIAS)
        database_config = settings.DATABASES[db]

        if not ignore_reset:
            reset_schema(database_config)

        # init db schema
        # the migrate-argument comes from south, if south is not used as app its silently ignored
        call_command('syncdb', interactive=False, migrate_all=True)

        # Emit the post sync signal. This allows individual
        # applications to respond as if the database had been
        # sync'd from scratch.
        #emit_post_sync_signal(models.get_models(), 0, 0, db)

        # get all fixtures
        jf = JsonFixtures(settings.PROJECT_ROOT)
        fixtures = jf.get_sorted()

        if len(fixtures) > 0:
            sys.stdout.write("Load fixtures: %s\n" % " ".join(fixtures))
            call_command('loaddata', *fixtures)

        if rebuild_haystack:
            call_command('rebuild_index', interactive=False)
예제 #3
0
    def handle_noargs(self, **options):
        from django.conf import settings
        from django.db import models
        from django.core.management.sql import emit_post_sync_signal
        from django.db.utils import DEFAULT_DB_ALIAS
        from django.core.management import call_command

        ignore_reset = options.get('ignore_reset')
        if ignore_reset is None:
            ignore_reset = self.ignore_reset_default

        db = options.get('database', DEFAULT_DB_ALIAS)
        database_config = settings.DATABASES[db]

        if not ignore_reset:
            reset_schema(database_config)

            # hack to avoid using south
            klass = load_command_class('django.core', 'syncdb')
            args = {}
            defaults = {}
            options['interactive'] = False
            for opt in klass.option_list:
                if opt.default is NO_DEFAULT:
                    defaults[opt.dest] = None
                else:
                    defaults[opt.dest] = opt.default
            defaults.update(options)
            klass.execute(*args, **defaults)

            # Emit the post sync signal. This allows individual
            # applications to respond as if the database had been
            # sync'd from scratch.
            emit_post_sync_signal(models.get_models(), 0, 0, db)

            call_command('migrate', fake=True)

        self.log("load Random Dummy data ...")

        try:
            user = get_user_model().objects.create_superuser('admin', '*****@*****.**', DUMMY_PASSWORD)
            user.first_name, user.last_name = name_factory.get_full_name()
            user.save()
            self.log("superuser: admin")
        except Exception, e:
            self.log("WARNING: could not create superuser: %s" % str(e))
예제 #4
0
    def handle_noargs(self, **options):

        from django.conf import settings
        from django.db.utils import DEFAULT_DB_ALIAS
        self.keep_mails = options.get('keep_mails', False)
        local_path = options.get('dump_path', None)
        db = options.get('database', DEFAULT_DB_ALIAS)    
        database_config = settings.DATABASES[db]
        from djangojames.db.utils import reset_schema, get_dumpdb_name, restore_db

        start_time = time.time()
        if not local_path:
            local_path =  os.path.join(LOCAL_PATH, get_dumpdb_name())
        print 'Using dumpfile at %s' % local_path

        create_db_if_not_exists(database_config)
        reset_schema(database_config)
        restore_db(database_config, local_path)
        
        print 'Finished in %d seconds' % (time.time() - start_time)
        start_time = time.time()
        
        if self.keep_mails:
            warning = '@ ATTENTION: THE EMAIL ADDRESSES WILL NOT BE CHANGED! DO NOT SEND ANY MAIL FROM THE PLATFORM !!! @'
            print ''
            print '@'*len(warning)
            print warning
            print '@'*len(warning)
            print ''
        else:
            from django.core.management import call_command
            from django.contrib.auth.models import User
            print 'Set fake emails <name>@%s-<domain> and fake passwords "%s"' % (self.domain_extension, self.fake_pw)
            
            call_command('fooemails', domain_extension=self.domain_extension)

            user = User()
            user.set_password(self.fake_pw)
            count = User.objects.all().update(password=user.password)
    
            print 'Reset %d passwords' % count
            print 'Finished in %d seconds' % (time.time() - start_time)