Переход с SQLite3 на PostgreSQL

This commit is contained in:
2025-03-13 15:04:24 +03:00
parent 0afe9f974f
commit 0eb0685115
6 changed files with 48 additions and 18 deletions

View File

@@ -1,6 +1,6 @@
# Информация о программе
__author__ = 'Alexander Popov'
__version__ = (1, 1, 0)
__version__ = (2, 0, 0)
# Импорт модулей стандартной библиотеки
from os import getenv
@@ -18,7 +18,13 @@ load_dotenv() # Выполняет чтение .env
client = Client(getenv('ACCOUNT'), api_id=getenv('APP_ID'), api_hash=getenv('APP_HASH'))
"""Клиент Telegram"""
db = DataBase(getenv('DB_PATH'))
db = DataBase(
getenv('DB_HOST'),
int(getenv('DB_PORT')),
getenv('DB_NAME'),
getenv('DB_USER'),
getenv('DB_PASSWORD'),
)
"""База данных"""
logger.add(getenv('LOG_PATH'), compression='zip')

View File

@@ -1,19 +1,35 @@
# Импорт модулей стандартной библиотеки
import sqlite3
import json
# Импорт сторонних модулей
import psycopg2
class DataBase(object):
"""Класс для работы с базой данных"""
def __init__(self, path):
def __init__(self, host: str, port: int, name: str, user: str, password: str):
super(DataBase, self).__init__()
self.path = path
"""Путь к файлу базы данных SQLite3"""
self.host = host
"""Хост PostgreSQL базы данных"""
self.port = port
"""Порт сервера базы данных"""
self.name = name
"""Имя базы данных"""
self.user = user
"""Имя пользователя"""
self.password = password
"""Пароль пользователя"""
def connect(self) -> bool:
"""Выполняет подключение к базе данных"""
self.conn = sqlite3.connect(self.path)
self.conn = psycopg2.connect(
dbname=self.name,
host=self.host,
user=self.user,
password=self.password,
port=self.port,
)
return True
def close(self) -> bool:
@@ -34,7 +50,7 @@ class DataBase(object):
table = 'donates'
cur = self.conn.cursor()
cur.execute('INSERT INTO {table} (\'data\') VALUES (\'{data}\')'.format(table=table, data=json.dumps(data)))
cur.execute('INSERT INTO {table} ("data") VALUES (\'{data}\')'.format(table=table, data=json.dumps(data)))
self.commit()
cur.close()