Files
Quiz-for-Mont/inquation.py
2025-09-04 11:27:16 +03:00

294 lines
12 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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("✅ Загружено: категории, функции, платформы и поддержка")