Initial commit

This commit is contained in:
2025-09-04 11:27:16 +03:00
commit c1a75f783a
29 changed files with 2153 additions and 0 deletions

293
inquation.py Normal file
View File

@@ -0,0 +1,293 @@
from peewee import *
from models import SurveyType, Product, Feature, Platform, PlatformFeature
from models import initialize_db
initialize_db()
# Данные
questions = {
"Безопасность": {
"sec_fstec": "Имеется ли сертификат ФСТЭК у данной версии СУБД?",
"sec_registry": "Включена ли СУБД в Единый реестр российского ПО?",
"sec_masking": "Поддерживается ли маскирование данных?",
"sec_admin": "Реализована ли роль 'Администратор без доступа к данным'?",
"sec_memory_clean": "Осуществляется ли очистка выделенной оперативной и дисковой памяти?",
"sec_audit": "Поддерживается ли расширение pg_proaudit для аудита?",
"sec_integrity": "Доступна ли утилита pg_integrity_check для проверки целостности данных?",
"sec_profiles": "Поддерживаются ли профили пользователей?"
},
"Управляемость": {
"mgmt_ppem": "Предоставляется ли Postgres Pro Enterprise Manager для управления СУБД?",
"mgmt_online_move": "Поддерживается ли online-перемещение таблиц?"
},
"Надежность и Масштабируемость": {
"reliability_biha": "Реализован ли встроенный отказоустойчивый кластер BiHA?",
"reliability_multimaster": "Поддерживается ли отказоустойчивая конфигурация: мастер-мастер (мультимастер)?",
"reliability_pool": "Встроен ли пул соединений?",
"reliability_64bit_xid": "Используется ли 64-разрядный счетчик транзакций?",
"reliability_cfs": "Поддерживается ли сжатие данных (CFS)?",
"reliability_incremental_backup": "Поддерживается ли инкрементальное блочное резервное копирование?",
"reliability_partitioning": "Реализовано ли эффективное секционирование (десятки тысяч секций)?",
"reliability_autonomous_tx": "Поддерживаются ли автономные транзакции?",
"reliability_scheduler": "Встроен ли планировщик заданий?"
},
"Производительность": {
"perf_aqo": "Реализована ли интеллектуальная система адаптивной оптимизации запросов (AQO)?",
"perf_pwr": "Доступно ли расширение pgpro_pwr для анализа производительности?",
"perf_monitoring": "Предоставляется ли агент мониторинга Mamonsu?",
"perf_hints": "Поддерживаются ли хинты?",
"perf_covering_indexes": "Поддерживаются ли покрывающие индексы?",
"perf_knn": "Поддерживается ли индексный поиск ближайших соседей (KNN)?",
"perf_rum": "Поддерживается ли комбинирование полнотекстового индекса с индексом релевантности (RUM)?",
"perf_wait_sampling": "Поддерживается ли pg_wait_sampling история и профиль ожиданий?"
},
"Разработка": {
"dev_plsql": "Поддерживаются ли PL/SQL-коллекции?",
"dev_bfile": "Поддерживаются ли внешние файлы (BFile)?",
"dev_superfile": "Реализована ли технология Postgres Pro Superfile для работы с большими данными?",
"dev_sql_json": "Поддерживается ли расширенная поддержка SQL/JSON?"
},
"Упрощение миграции с Oracle": {
"oracle_migration": "Облегчена ли миграция с Oracle (пакеты, ассоциативные массивы, автономные транзакции и т.д.)?"
},
"Совместимость": {
"comp_apps": "Совместима ли СУБД с 250+ популярными прикладными решениями?",
"comp_platforms": "Поддерживается ли работа на 35+ платформах?"
}
}
platforms = {
"Postgres Pro Enterprise": {
"sec_fstec": False,
"sec_registry": True,
"sec_masking": True,
"sec_admin": True,
"sec_memory_clean": False,
"sec_audit": True,
"sec_integrity": False,
"sec_profiles": True,
"mgmt_ppem": True,
"mgmt_online_move": True,
"reliability_biha": True,
"reliability_multimaster": True,
"reliability_pool": True,
"reliability_64bit_xid": True,
"reliability_cfs": True,
"reliability_incremental_backup": True,
"reliability_partitioning": True,
"reliability_autonomous_tx": True,
"reliability_scheduler": True,
"perf_aqo": True,
"perf_pwr": True,
"perf_monitoring": True,
"perf_hints": True,
"perf_covering_indexes": True,
"perf_knn": True,
"perf_rum": True,
"perf_wait_sampling": True,
"dev_plsql": True,
"dev_bfile": True,
"dev_superfile": True,
"dev_sql_json": True,
"oracle_migration": True,
"comp_apps": True,
"comp_platforms": True
},
"Postgres Pro Enterprise Certified": {
"sec_fstec": True,
"sec_registry": True,
"sec_masking": True,
"sec_admin": True,
"sec_memory_clean": True,
"sec_audit": True,
"sec_integrity": True,
"sec_profiles": True,
"mgmt_ppem": True,
"mgmt_online_move": True,
"reliability_biha": True,
"reliability_multimaster": True,
"reliability_pool": True,
"reliability_64bit_xid": True,
"reliability_cfs": True,
"reliability_incremental_backup": True,
"reliability_partitioning": True,
"reliability_autonomous_tx": True,
"reliability_scheduler": True,
"perf_aqo": True,
"perf_pwr": True,
"perf_monitoring": True,
"perf_hints": True,
"perf_covering_indexes": True,
"perf_knn": True,
"perf_rum": True,
"perf_wait_sampling": True,
"dev_plsql": True,
"dev_bfile": True,
"dev_superfile": True,
"dev_sql_json": True,
"oracle_migration": True,
"comp_apps": True,
"comp_platforms": True
},
"Postgres Pro Standard": {
"sec_fstec": False,
"sec_registry": True,
"sec_masking": False,
"sec_admin": False,
"sec_memory_clean": False,
"sec_audit": True,
"sec_integrity": False,
"sec_profiles": True,
"mgmt_ppem": True,
"mgmt_online_move": False,
"reliability_biha": False,
"reliability_multimaster": False,
"reliability_pool": False,
"reliability_64bit_xid": False,
"reliability_cfs": False,
"reliability_incremental_backup": True,
"reliability_partitioning": False,
"reliability_autonomous_tx": False,
"reliability_scheduler": False,
"perf_aqo": False,
"perf_pwr": False,
"perf_monitoring": True,
"perf_hints": False,
"perf_covering_indexes": False,
"perf_knn": False,
"perf_rum": False,
"perf_wait_sampling": False,
"dev_plsql": False,
"dev_bfile": False,
"dev_superfile": False,
"dev_sql_json": True,
"oracle_migration": False,
"comp_apps": True,
"comp_platforms": True
},
"Postgres Pro Certified": {
"sec_fstec": True,
"sec_registry": True,
"sec_masking": False,
"sec_admin": False,
"sec_memory_clean": True,
"sec_audit": True,
"sec_integrity": True,
"sec_profiles": True,
"mgmt_ppem": True,
"mgmt_online_move": False,
"reliability_biha": False,
"reliability_multimaster": False,
"reliability_pool": False,
"reliability_64bit_xid": False,
"reliability_cfs": False,
"reliability_incremental_backup": True,
"reliability_partitioning": False,
"reliability_autonomous_tx": False,
"reliability_scheduler": False,
"perf_aqo": False,
"perf_pwr": False,
"perf_monitoring": True,
"perf_hints": False,
"perf_covering_indexes": False,
"perf_knn": False,
"perf_rum": False,
"perf_wait_sampling": False,
"dev_plsql": False,
"dev_bfile": False,
"dev_superfile": False,
"dev_sql_json": True,
"oracle_migration": False,
"comp_apps": True,
"comp_platforms": True
},
"Postgres Pro Shardman": {
"sec_fstec": True,
"sec_registry": True,
"sec_masking": False,
"sec_admin": False,
"sec_memory_clean": False,
"sec_audit": True,
"sec_integrity": False,
"sec_profiles": False,
"mgmt_ppem": True,
"mgmt_online_move": False,
"reliability_biha": False,
"reliability_multimaster": False,
"reliability_pool": True,
"reliability_64bit_xid": True,
"reliability_cfs": True,
"reliability_incremental_backup": True,
"reliability_partitioning": False,
"reliability_autonomous_tx": False,
"reliability_scheduler": False,
"perf_aqo": False,
"perf_pwr": False,
"perf_monitoring": False,
"perf_hints": False,
"perf_covering_indexes": True,
"perf_knn": True,
"perf_rum": False,
"perf_wait_sampling": False,
"dev_plsql": False,
"dev_bfile": True,
"dev_superfile": True,
"dev_sql_json": False,
"oracle_migration": False,
"comp_apps": True,
"comp_platforms": True
},
"PostgreSQL (сообщество)": {
"sec_fstec": False,
"sec_registry": False,
"sec_masking": False,
"sec_admin": False,
"sec_memory_clean": False,
"sec_audit": False,
"sec_integrity": False,
"sec_profiles": False,
"mgmt_ppem": False,
"mgmt_online_move": False,
"reliability_biha": False,
"reliability_multimaster": False,
"reliability_pool": False,
"reliability_64bit_xid": False,
"reliability_cfs": False,
"reliability_incremental_backup": False,
"reliability_partitioning": False,
"reliability_autonomous_tx": False,
"reliability_scheduler": False,
"perf_aqo": False,
"perf_pwr": False,
"perf_monitoring": False,
"perf_hints": False,
"perf_covering_indexes": False,
"perf_knn": False,
"perf_rum": False,
"perf_wait_sampling": False,
"dev_plsql": False,
"dev_bfile": False,
"dev_superfile": False,
"dev_sql_json": False,
"oracle_migration": False,
"comp_apps": False,
"comp_platforms": False
}
}
# Создание опроса
survey, _ = SurveyType.get_or_create(name="Сравнение версий Postgres Pro")
# Загрузка вопросов
feature_map = {}
for category, feature_group in questions.items():
product, _ = Product.get_or_create(name=category, survey_type=survey)
for name, text in feature_group.items():
f, _ = Feature.get_or_create(name=name, question_text=text, product=product)
feature_map[name] = f
# Загрузка платформ и поддержки
for platform_name, feature_support in platforms.items():
platform, _ = Platform.get_or_create(name=platform_name, survey_type=survey)
for feature_key, is_supported in feature_support.items():
f = feature_map.get(feature_key)
if f:
PlatformFeature.get_or_create(platform=platform, feature=f, defaults={"supported": is_supported})
print("✅ Загружено: категории, функции, платформы и поддержка")