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