A powerful tool for managing multiple database environments in Flask applications
Project description
Flask-SQLAlchemy-Database-Orchestration
English
Flask-SQLAlchemy-Database-Orchestration is a powerful tool developed for managing multiple database environments in Flask applications. This tool accelerates development processes by facilitating database creation, initialization, and migration operations.
Features
- SQLite database support
- Automatic database creation
- Migration management for single or all databases
- Easy configuration
- User-friendly interface with colored terminal outputs
Installation
- Install the package:
# Windows
pip install Flask-SQLAlchemy-Database-Orchestration
# Linux/Mac
pip3 install Flask-SQLAlchemy-Database-Orchestration
- Find the Installation Directory:
When the package is installed, all files will be copied to your current working directory.
- Install Dependencies:
# Windows
pip install -r Requirements.txt
# Linux/Mac
pip3 install -r Requirements.txt
Usage
Database Type Configuration
You can specify the database type in the Utils/GeneralConfig.json file:
{
"DB_TYPE": "SQLite"
}
Supported database types: SQLite
Database Configuration
Each database type has its own configuration file. For example, for SQLite: Utils/SQLiteConfig.json:
You can add as many databases as you want.
{
"DATABASES": {
"local": {
"DATABASE_NAME": "FlaskLocal.db"
},
"dev": {
"DATABASE_NAME": "FlaskDev.db"
},
"test": {
"DATABASE_NAME": "FlaskTest.db"
}
}
}
1. Database Creation
To create databases:
python DbCreate.py
# Linux/Mac
python3 DbCreate.py
This command creates all databases defined in the relevant json file, such as Utils/SQLiteConfig.json, in the Assets/Databases folder according to the database type entered with DB_TYPE.
2. Database Initialization
To initialize database migration folders:
python DbInit.py
# Linux/Mac
python3 DbInit.py
When this command is run:
- Offers the option to initialize migration for a single database or all databases
- Creates
Migrations/Migrations_{db_type}_{db_name}folders for selected databases - Initializes database migration files with Flask-Migrate
3. Database Migration
To apply model changes to the database:
python DbMigrade.py
# Linux/Mac
python3 DbMigrade.py
When this command is run:
- Offers the option to migrate for a single database or all databases
- Performs migration for selected databases
- Reflects model changes to the database
Model Definition
Models are defined in the Models/Entity folder. An example model:
from Models.BaseModel.BaseModel import *
from Logix.DbManager.DbManager import db
class TestUsers(BaseModel, db.Model):
__tablename__ = "TestUsers"
Id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
UserId = db.Column(db.String(300), unique=True)
Email = db.Column(db.String(100), unique=True)
Name = db.Column(db.String(30))
# ...
def __init__(self, UserId, Email, Name, ...):
self.UserId = UserId
self.Email = Email
self.Name = Name
# ...
def to_dict(self):
return {prop: getattr(self, prop) for prop in dir(self)
if not prop.startswith('_') and not callable(getattr(self, prop))}
After creating a new model, don't forget to import it in the Models/Entity/_EntityExport.py file:
from Models.Entity.TestUsers import TestUsers
from Models.Entity.TestAuthentications import TestAuthentications
# ...
Project Structure
Flask-SQLAlchemy-Database-Orchestration/
├── Assets/
│ └── Databases/ # Database files
├── Logix/
│ ├── DbManager/ # Database management tools
│ └── Midware/ # Migration and helper tools
├── Migrations/ # Migration folders
├── Models/
│ ├── BaseModel/ # Base model classes
│ └── Entity/ # Database models
├── Utils/ # Configuration files
├── DbCreate.py # Database creation
├── DbInit.py # Migration initialization
├── DbMigrade.py # Migration application
└── Requirements.txt # Dependencies
License
This project is licensed under the MIT License.
Türkçe
Flask-SQLAlchemy-Database-Orchestration, Flask uygulamalarında çoklu veritabanı ortamlarını yönetmek için geliştirilmiş güçlü bir araçtır. Bu araç, veritabanı oluşturma, başlatma ve migrasyon işlemlerini kolaylaştırarak, geliştirme süreçlerini hızlandırır.
Özellikler
- SQLite veritabanı desteği
- Otomatik veritabanı oluşturma
- Tek veya tüm veritabanları için migrasyon yönetimi
- Kolay yapılandırma
- Renkli terminal çıktıları ile kullanıcı dostu arayüz
Kurulum
- Paketi yükleyin:
# Windows
pip install Flask-SQLAlchemy-Database-Orchestration
# Linux/Mac
pip3 install Flask-SQLAlchemy-Database-Orchestration
- Paketin Kurulu Olduğu Dizini Bulun:
Paket kurulduğunda, tüm dosyalar mevcut çalışma dizininize kopyalanacaktır.
- Bağımlılıkları Yükleyin:
# Windows
pip install -r Requirements.txt
# Linux/Mac
pip3 install -r Requirements.txt
Kullanım
Veritabanı Tipi Yapılandırması
Veritabanı tipini Utils/GeneralConfig.json dosyasında belirleyebilirsiniz:
{
"DB_TYPE": "SQLite"
}
Desteklenen veritabanı tipleri: SQLite
Veritabanı Yapılandırması
Her veritabanı tipi için kendi yapılandırma dosyası bulunmaktadır. Örneğin, SQLite için Utils/SQLiteConfig.json:
İstediğiniz kadar veri tabanı ekleyebilirsiniz.
{
"DATABASES": {
"local": {
"DATABASE_NAME": "FlaskLocal.db"
},
"dev": {
"DATABASE_NAME": "FlaskDev.db"
},
"test": {
"DATABASE_NAME": "FlaskTest.db"
}
}
}
1. Veritabanı Oluşturma
Veritabanlarını oluşturmak için:
python DbCreate.py
# Linux/Mac
python3 DbCreate.py
Bu komut, DB_TYPE ile girilmiş olan veri tabanı tibine göre ilgili json dosyasındaki örneğin Utils/SQLiteConfig.json dosyasında tanımlanan tüm veritabanlarını Assets/Databases klasöründe oluşturur.
2. Veritabanı Başlatma (Init)
Veritabanı migrasyon klasörlerini başlatmak için:
python DbInit.py
# Linux/Mac
python3 DbInit.py
Bu komut çalıştırıldığında:
- Tek bir veritabanı veya tüm veritabanları için migrasyon başlatma seçeneği sunulur
- Seçilen veritabanları için
Migrations/Migrations_{db_type}_{db_name}klasörleri oluşturulur - Flask-Migrate ile veritabanı migrasyon dosyaları başlatılır
3. Veritabanı Migrasyon
Model değişikliklerini veritabanına uygulamak için:
python DbMigrade.py
# Linux/Mac
python3 DbMigrade.py
Bu komut çalıştırıldığında:
- Tek bir veritabanı veya tüm veritabanları için migrasyon seçeneği sunulur
- Seçilen veritabanları için migrasyon işlemi gerçekleştirilir
- Model değişiklikleri veritabanına yansıtılır
Model Tanımlama
Modeller Models/Entity klasöründe tanımlanır. Örnek bir model:
from Models.BaseModel.BaseModel import *
from Logix.DbManager.DbManager import db
class TestUsers(BaseModel, db.Model):
__tablename__ = "TestUsers"
Id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
UserId = db.Column(db.String(300), unique=True)
Email = db.Column(db.String(100), unique=True)
Name = db.Column(db.String(30))
# ...
def __init__(self, UserId, Email, Name, ...):
self.UserId = UserId
self.Email = Email
self.Name = Name
# ...
def to_dict(self):
return {prop: getattr(self, prop) for prop in dir(self)
if not prop.startswith('_') and not callable(getattr(self, prop))}
Yeni bir model oluşturduktan sonra, Models/Entity/_EntityExport.py dosyasına import etmeyi unutmayın:
from Models.Entity.TestUsers import TestUsers
from Models.Entity.TestAuthentications import TestAuthentications
# ...
Proje Yapısı
Flask-SQLAlchemy-Database-Orchestration/
├── Assets/
│ └── Databases/ # Veritabanı dosyaları
├── Logix/
│ ├── DbManager/ # Veritabanı yönetim araçları
│ └── Midware/ # Migrasyon ve yardımcı araçlar
├── Migrations/ # Migrasyon klasörleri
├── Models/
│ ├── BaseModel/ # Temel model sınıfları
│ └── Entity/ # Veritabanı modelleri
├── Utils/ # Yapılandırma dosyaları
├── DbCreate.py # Veritabanı oluşturma
├── DbInit.py # Migrasyon başlatma
├── DbMigrade.py # Migrasyon uygulama
└── Requirements.txt # Bağımlılıklar
Lisans
Bu proje MIT Lisansı altında lisanslanmıştır.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file flask_sqlalchemy_database_orchestration-1.0.1.tar.gz.
File metadata
- Download URL: flask_sqlalchemy_database_orchestration-1.0.1.tar.gz
- Upload date:
- Size: 35.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
05fe7ed35be33e800215831d6782590fdedcc96e14f63e8608b9340f5b454dbe
|
|
| MD5 |
a623a435af6539397fe9b8b55a0738a5
|
|
| BLAKE2b-256 |
a8804b58d77b8b6f67ffa5f70c45f30ccaf2a602b079a0bd47da4b5f14247ca6
|
File details
Details for the file flask_sqlalchemy_database_orchestration-1.0.1-py3-none-any.whl.
File metadata
- Download URL: flask_sqlalchemy_database_orchestration-1.0.1-py3-none-any.whl
- Upload date:
- Size: 38.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5ee62a620b0ddbc25c2e84f959950f99eb784f49b64ea2654db217e0dfcf660b
|
|
| MD5 |
2da68fe656fa190a3901c3067789c388
|
|
| BLAKE2b-256 |
5da8fec5f93b3306c84a5c3409fd58a7b4c912cfee36d82b1122850e1080e44a
|
File details
Details for the file Flask_SQLAlchemy_Database_Orchestration-1.0.1-py3-none-any.whl.
File metadata
- Download URL: Flask_SQLAlchemy_Database_Orchestration-1.0.1-py3-none-any.whl
- Upload date:
- Size: 38.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c293a027128e5873dc7e68d1f2179ee1d50820b210772e5fa3b4ec90328de874
|
|
| MD5 |
da03b5142a728ab9ea40f4d3ba74c8e1
|
|
| BLAKE2b-256 |
489fbbc8bfc6905d8682cd268e94fd34be3467d7d1595e2388e8408abf59c0c2
|