def setup(self):
"""Setting up SQL table, if it not exists."""
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
评论列表
文章目录