feat: добавлена система миграций БД и CI/CD пайплайны
- Создана система отслеживания миграций (MigrationRepository, таблица migrations) - Добавлен скрипт apply_migrations.py для автоматического применения миграций - Созданы CI/CD пайплайны (.github/workflows/ci.yml, deploy.yml) - Обновлена документация по миграциям в database-patterns.md - Миграции применяются автоматически при деплое в продакшн
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
import aiosqlite
|
||||
from datetime import datetime
|
||||
from typing import Optional, List, Dict, Any, Tuple
|
||||
from typing import Any, Dict, List, Optional, Tuple
|
||||
|
||||
import aiosqlite
|
||||
from database.models import (Admin, AudioMessage, BlacklistHistoryRecord,
|
||||
BlacklistUser, PostContent, TelegramPost, User,
|
||||
UserMessage)
|
||||
from database.repository_factory import RepositoryFactory
|
||||
from database.models import (
|
||||
User, BlacklistUser, BlacklistHistoryRecord, UserMessage, TelegramPost, PostContent,
|
||||
Admin, AudioMessage
|
||||
)
|
||||
|
||||
|
||||
class AsyncBotDB:
|
||||
@@ -403,25 +403,9 @@ class AsyncBotDB:
|
||||
await self.factory.audio.delete_audio_record_by_file_name(file_name)
|
||||
|
||||
# Методы для миграций
|
||||
async def get_migration_version(self) -> int:
|
||||
"""Получение текущей версии миграции."""
|
||||
return await self.factory.migrations.get_migration_version()
|
||||
|
||||
async def get_current_version(self) -> Optional[int]:
|
||||
"""Возвращает текущую последнюю версию миграции."""
|
||||
return await self.factory.migrations.get_current_version()
|
||||
|
||||
async def update_version(self, new_version: int, script_name: str):
|
||||
"""Обновляет версию миграций в таблице migrations."""
|
||||
await self.factory.migrations.update_version(new_version, script_name)
|
||||
|
||||
async def create_table(self, sql_script: str):
|
||||
"""Создает таблицу в базе. Используется в миграциях."""
|
||||
await self.factory.migrations.create_table(sql_script)
|
||||
|
||||
async def update_migration_version(self, version: int, script_name: str):
|
||||
"""Обновление версии миграции."""
|
||||
await self.factory.migrations.update_version(version, script_name)
|
||||
await self.factory.migrations.create_table_from_sql(sql_script)
|
||||
|
||||
# Методы для voice bot welcome tracking
|
||||
async def check_voice_bot_welcome_received(self, user_id: int) -> bool:
|
||||
|
||||
Reference in New Issue
Block a user