Initial commit
This commit is contained in:
293
inquation.py
Normal file
293
inquation.py
Normal 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("✅ Загружено: категории, функции, платформы и поддержка")
|
||||
Reference in New Issue
Block a user