Example #1
0
    def teardown_databases(self, old_config, **kwargs):
        """
        Destroys all the non-mirror databases.
        """
        sqla_databases = getattr(settings, "SQLA_DATABASES", {})

        for config_id, config in getattr(settings, "SQLA_MODELS", {}).iteritems():
            if sqla_databases.has_key(config_id):
                module_name = config.get("module", None)
                db_module = import_string(module_name)
                metadata = getattr(db_module, "Metadata")
                if not self.keepdb:
                    print("%s database schema for alias '%s'..." % (
                        "Dropping",
                        config_id,
                    ))

                    metadata.drop_all()

                    database_url = sqla_databases.get(config_id)
                    if database_exists(database_url):
                        print("%s test database for alias '%s'..." % (
                            "Destroying",
                            config_id,
                        ))

                        drop_database(database_url)

            else:
                # Error incorrect database
                raise Exception

        super(DiscoverRunner, self).teardown_databases(old_config, **kwargs)
Example #2
0
    def setup_databases(self, **kwargs):
        result = super(DiscoverRunner, self).setup_databases(**kwargs)

        sqla_databases = getattr(settings, "SQLA_DATABASES", {})

        for config_id, config in getattr(settings, "SQLA_MODELS", {}).iteritems():
            if sqla_databases.has_key(config_id):
                database_url = sqla_databases.get(config_id)

                if not self.keepdb:

                    if database_exists(database_url):

                        print("%s test database for alias '%s'..." % (
                            "Destroying",
                            config_id,
                        ))

                        drop_database(database_url)

                    print("%s test database for alias '%s'..." % (
                        "Creating",
                        config_id,
                    ))

                    create_database(database_url)
                    module_name = config.get("module", None)
                    db_module = import_string(module_name)


                    metadata = getattr(db_module, "Metadata")

                    print("%s database schema for alias '%s'..." % (
                        "Creating",
                        config_id,
                    ))

                    metadata.create_all()
                else:
                    if not database_exists(database_url):
                        print("%s test database for alias '%s'..." % (
                            "Creating",
                            config_id,
                        ))

                        create_database(database_url)
                        module_name = config.get("module", None)
                        db_module = import_string(module_name)
                        metadata = getattr(db_module, "Metadata")

                        print("%s database schema for alias '%s'..." % (
                            "Creating",
                            config_id,
                        ))

                        metadata.create_all()

            else:
                # Error incorrect database
                raise Exception

        return result