def run(self):
        """Load all artists into the database
        """

        df = ArtistsInputData().load()

        # get base model instances, merge ID column via the unique wiki ID
        # (base and derived model instances must have the same ID values)
        base_data = self.client.df_query(self.session.query(models.ArtistBase))
        df = df.merge(base_data, on='wiki_id')

        # rename columns
        df.rename(columns={'artistLabel': 'name',
                           'genderLabel': 'gender'},
                  inplace=True)

        # columns that exist in the data model
        columns = ['name', 'id']

        # the extended model also stores the date of birth and gender
        if config.EXTENDED:
            columns += ['gender', 'year_of_birth']

        # keep only columns that exist in the data model
        df = df[columns]

        # store everything, done
        df.to_sql(name=models.Artist.__tablename__,
                  con=self.client.engine,
                  if_exists='append',
                  index=False)

        self.done()