This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
#!/usr/bin/env python3
|
||||
"""LEGACY — не входит в пайплайн runner.sh с версии 1.0.0.
|
||||
|
||||
Проставляет marked_to_publication = 1 видимым событиям (is_visible = 1),
|
||||
у которых флаг ещё не установлен.
|
||||
|
||||
Запуск вручную из корня проекта:
|
||||
./venv/bin/python tools/legacy/evt_prefetch.py
|
||||
"""
|
||||
import os
|
||||
import mysql.connector
|
||||
from mysql.connector import Error
|
||||
from dotenv import load_dotenv
|
||||
|
||||
_PROJECT_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", ".."))
|
||||
load_dotenv(os.path.join(_PROJECT_ROOT, ".env"))
|
||||
load_dotenv()
|
||||
|
||||
MDB_HOST = os.getenv('MDB_HOST')
|
||||
MDB_USER = os.getenv('MDB_USER')
|
||||
MDB_PW = os.getenv('MDB_PW')
|
||||
MDBASE = os.getenv('MDBASE')
|
||||
|
||||
|
||||
def prefetch_all_events():
|
||||
"""
|
||||
Проверяет записи в таблице events и устанавливает флаг marked_to_publication
|
||||
для записей, которые:
|
||||
- имеют флаг is_visible = 1
|
||||
- не имеют флага marked_to_publication = 1
|
||||
"""
|
||||
try:
|
||||
connection = mysql.connector.connect(
|
||||
host=MDB_HOST,
|
||||
user=MDB_USER,
|
||||
password=MDB_PW,
|
||||
database=MDBASE
|
||||
)
|
||||
|
||||
cursor_temp = connection.cursor()
|
||||
cursor_temp.execute("SET time_zone = '+00:00'")
|
||||
cursor_temp.close()
|
||||
|
||||
cursor = connection.cursor()
|
||||
|
||||
update_query = """
|
||||
UPDATE events
|
||||
SET marked_to_publication = 1
|
||||
WHERE is_visible = 1
|
||||
AND marked_to_publication = 0
|
||||
"""
|
||||
|
||||
cursor.execute(update_query)
|
||||
updated_count = cursor.rowcount
|
||||
connection.commit()
|
||||
|
||||
print(f"Обновлено записей: {updated_count}")
|
||||
return updated_count
|
||||
|
||||
except Error as e:
|
||||
print(f"Ошибка базы данных: {e}")
|
||||
if 'connection' in locals() and connection.is_connected():
|
||||
connection.rollback()
|
||||
return 0
|
||||
except Exception as e:
|
||||
print(f"Общая ошибка: {e}")
|
||||
return 0
|
||||
finally:
|
||||
if 'connection' in locals() and connection.is_connected():
|
||||
cursor.close()
|
||||
connection.close()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
prefetch_all_events()
|
||||
Reference in New Issue
Block a user