\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
| Path : /var/www/html/yedekledb24/DatabaseBackupMasterv8/ |
|
B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H |
| Current File : /var/www/html/yedekledb24/DatabaseBackupMasterv8/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()