Açık Kaynak SistemlerBilişim ProfesyonelleriMakaleWeb UygulamalarıYazılım Geliştirme

Flask MVC (Unit-4) Alembic Configuration

Yazı dizimizin bir önceki bölümünde, projemizin ana dosyasından ve modüllerin birbirleri ile bağlantısını blueprint ile bu ana proje dosyası üzerinden yaptığımızdan bahsetmiştik. Aşağıdaki kod satırlarımızda projemize devam ediyoruz, bununla birlikte size Alembic Configuration nedir onu da anlatmak isterim.

Alembic bir konfigürasyonu temsil eder. Bir Config nesnesiyle, Alembic komutlarını alembic’teki yönergeleri kullanarak programlı olarak çalıştırabilirsiniz. Programlı yapılandırmayı kullanırken, kullanılan env.py dosyasının hedef yapılandırmayla uyumlu olduğundan emin olun; Python günlüğe kaydetme çağrısı da dahil.

Alembic Configuration ayarlarının yapılması:

#config.py
import os

ENV = os.getenv('ENVIRONMENT', 'Local')
basedir = os.path.abspath(os.path.dirname(__file__))

class DefaultConfig(object):
    def __init__(self):
        self.DEBUG = True
        pth = 'sqlite:///'+os.path.join(basedir,'data.db')
        self.SQLALCHEMY_DATABASE_URI = pth
        self.DATABASE_CONNECT_OPTIONS = {}
        self.SQLALCHEMY_TRACK_MODIFICATIONS = False
        self.SECRET_KEY = "bks"
        self.SERVER_NAME = "localhost:800"


class ProductionConfig(DefaultConfig):
    def __init__(self):
        super(ProductionConfig, self).__init__()
        self.DEBUG = True
        pth = os.environ['DATABASE_URL']
        self.SQLALCHEMY_DATABASE_URI = pth
        self.SERVER_NAME = "localhost:800"



configuration = DefaultConfig()
if ENV == "Production":
    configuration = ProductionConfig()

Config.py dosyasında veri tabanı ayarlarını, server ayarlarını vs.. bir çok configurasyon ayarlıyoruz. Yukarda sql lite veri tabanını kullanacağımız ve bu veritabanın nerede olacağı gibi bilgileri belirledik. Configurasyon dosyasını SQLAlchemy üzerinden işleten araç ise alembic aracıdır.

One thought on “Flask MVC (Unit-4) Alembic Configuration

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.