Add MySQL support #2

Merged
Dniel97 merged 2 commits from Floatin/AQUA-to-ARTEMiS:mysql-support into main 2023-10-28 21:50:55 +00:00
Showing only changes of commit 7af88d7baa - Show all commits

View File

@ -27,6 +27,9 @@ from titles.ongeki.const import OngekiConstants
class AquaData:
def __init__(self, aqua_db_path: str) -> None:
if use_mysql:
self.__engine = create_engine("mysql+pymysql://" + aqua_db_path, echo=False)
else:
self.__url = f"sqlite:///{aqua_db_path}"
self.__engine = create_engine(self.__url, pool_recycle=3600)
@ -114,6 +117,9 @@ class Importer:
coloredlogs.install(level="INFO", logger=self.logger, fmt=log_fmt_str)
self.logger.initialized = True
if use_mysql:
self.aqua = AquaData(aqua_folder)
else:
aqua_db_path = None
if os.path.exists(aqua_folder):
temp = os.path.join(aqua_folder, "db.sqlite")
@ -164,6 +170,8 @@ class Importer:
card_id: int,
) -> Dict:
row = row._asdict()
if use_mysql is False:
for column in datetime_columns:
ts = row[column["name"]]
if ts is None:
@ -704,16 +712,21 @@ def main():
"--config", "-c", type=str, help="Config directory to use", default="config"
)
parser.add_argument(
"aqua_folder_path",
"aqua_data_path",
type=str,
help="Absolute folder path to AQUA /data folder, where db.sqlite is located in",
help="Absolute folder path to AQUA /data folder, where db.sqlite is located in. You can also enter the Mysql database connection address (<user>:<password>@<host>:<port>/<database>)",
)
args = parser.parse_args()
core_cfg = CoreConfig()
core_cfg.update(yaml.safe_load(open(f"{args.config}/core.yaml")))
importer = Importer(core_cfg, args.config, args.aqua_folder_path)
global use_mysql
use_mysql = False
if '@' in args.aqua_data_path:
use_mysql = True
importer = Importer(core_cfg, args.config, args.aqua_data_path)
importer.import_chuni()
importer.import_ongeki()