Skip to content

Commit fadcb1e

Browse files
author
lx-dev
committed
fix(database): fix migration code usage
1 parent 86b6add commit fadcb1e

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

src/astraeus_common/io/database.py

+9-3
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,27 @@
1+
import os
12
import sys
23
from typing import List
34

45
import psycopg2
56
import structlog
6-
import yoyo
77
from psycopg2.extras import DictCursor
88
from yoyo import read_migrations, get_backend
99

10+
from . import db
11+
1012
PING_QUERY = 'SELECT 1'
1113

14+
1215
class Database:
1316
_db_host: str
1417
_db_port: str
1518
_db_user: str
1619
_db_name: str
1720
_db_password: str
21+
_migration_folder: str
1822

1923
def __init__(self, db_host: str, db_port: str, db_user: str, db_name: str, db_password: str):
24+
self._migration_folder = os.path.dirname(os.path.abspath(db.__file__))
2025
self._db_host = db_host
2126
self._db_port = db_port
2227
self._db_user = db_user
@@ -28,9 +33,11 @@ def __init__(self, db_host: str, db_port: str, db_user: str, db_name: str, db_pa
2833
self.__try_connection('SELECT * FROM ASTRAEUS.BODY')
2934

3035
def __apply_migration(self):
36+
self._log.debug('applying yoyo migration')
3137
backend = get_backend(f'postgresql://{self._db_user}:{self._db_password}@'
3238
f'{self._db_host}:{self._db_port}/{self._db_name}')
33-
migrations = read_migrations('./db')
39+
migrations = read_migrations(self._migration_folder)
40+
print(migrations)
3441
backend.apply_migrations(backend.to_apply(migrations))
3542

3643
def __try_connection(self, query: str):
@@ -75,4 +82,3 @@ def exec_db_write(self, query: str, params: dict) -> None:
7582
except psycopg2.DatabaseError as error:
7683
self._log.error(f'Error occur on write of {log_query} - {error}')
7784
connection.rollback()
78-

test/test_db_migration.py

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
from astraeus_common.io.database import Database
2+
3+
if __name__ == '__main__':
4+
Database('localhost', '5432', 'astraeus', 'astraeus-db', 'astraeus')

0 commit comments

Comments
 (0)