code: async def setup(self):
          
          try:
              engine = await self.db
              created = False
              if not await engine.has_table(self.table_name):
                  # create table
                  logger.info("Creating SQL table [{}]".format(self.table_name))
                  items = self._get_table()
                  await engine.execute(CreateTable(items))
                  # create indeces
                  conn = await engine.connect()
                  await conn.execute(
                      "CREATE INDEX `lb_last_updated` ON `{}` (`source_id` DESC,`updated` DESC);".format(self.table_name))
                  await conn.execute(
                      "CREATE INDEX `lb_post` ON `{}` (`target_id` DESC,`post_id` DESC);".format(self.table_name))
                  await conn.close()
                  created = True
              # create control table if not already created.
              if self.control_table_name and not await engine.has_table(self.control_table_name):
                  # create table
                  logger.info("Creating SQL control table [{}]".format(self.control_table_name))
                  items = self._get_control_table()
                  await engine.execute(CreateTable(items))
                  created = True
              return created
          except Exception as exc:
              logger.error("[DB] Error when setting up SQL table: {}".format(exc))
          return False
docs: Setting up SQL table, if it not exists.