def handle_noargs(self, **options): verbosity = int(options.get("verbosity", 0)) migrate = options.get("migrate", False) options["migrate"] = False shared_apps, isolated_apps = get_apps() try: if len(shared_apps) > 0: if verbosity: print "------------------" print "SHARED APPS syncdb" print "------------------\n" syncdb_apps(shared_apps, schema=None, **options) if len(isolated_apps) == 0: return schema_list = [x.name for x in Schema.objects.active()] for schema in schema_list: if verbosity: print "\n-------------------------------" print "ISOLATED APPS syncdb on schema: %s" % schema print "-------------------------------\n" syncdb_apps(isolated_apps, schema=schema, **options) finally: load_post_syncdb_signals() if migrate: db.connection.close() db.connection.connection = None management.call_command("migrate")
def handle_noargs(self, **options): verbosity = int(options.get('verbosity', 0)) migrate = options.get('migrate', False) options['migrate'] = False shared_apps, isolated_apps = get_apps() try: if len(shared_apps) > 0: if verbosity: print "------------------" print "SHARED APPS syncdb" print "------------------\n" syncdb_apps(shared_apps, **options) if len(isolated_apps) == 0: return for schema in Schema.objects.active(): if verbosity: print "\n-------------------------------" print "ISOLATED APPS syncdb on schema: %s" % schema.name print "-------------------------------\n" syncdb_apps(isolated_apps, schema.name, **options) finally: load_post_syncdb_signals() if migrate: management.call_command("migrate")
def create_schema(name, **options): """ This function creates a schema and perform a syncdb on it. As we call some syncdb and migrate management commands, we can't rely on transaction support. We are going to catch any exception (including SystemExit). """ try: cursor = connection.cursor() # We can't use params with system names cursor.execute('CREATE SCHEMA "%s"' % escape_schema_name(name)) transaction.commit_unless_managed() defaults = { 'verbosity': 0, 'traceback': None, 'noinput': True } defaults.update(options) sync_options = options # We never want migration to launch with syncdb call sync_options['migrate'] = False _, isolated_apps = get_apps() syncdb_apps(isolated_apps, name, **sync_options) migrate_apps(get_migration_candidates(isolated_apps), name, **options) schema_store.reset_path() except BaseException, e: drop_schema(name) raise Exception(str(e))