/
Dmitry-F
/
cbt_tool
Обзор
Документация
Войти
/
Dmitry-F
/
cbt_tool
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
lib/tasks/cleanup.rake
38 строк
2 KB
Dmitriy-Filatov
Рефакторинг БД (bigint, индексы), внедрение Minitest и очистка db:clean_all
15 мар 2026, 03:53
15 мар 2026, 03:53
0b48991
Код
Авторство
О чём код?
namespace :db do desc "⚠️ СБРОС СИСТЕМЫ: Очистка + Перезагрузка (Transaction Block)" task clean_all: :environment do if Rails.env.production? puts "\n🚫 КРИТИЧЕСКАЯ ОШИБКА: Попытка деструктивного действия на живой системе!" return end puts "\n🚨 ТЕРАПЕВТИЧЕСКАЯ ИНТЕРВЕНЦИЯ: Сжигаем старые данные..." tables = ActiveRecord::Base.connection.tables - [ "schema_migrations", "ar_internal_metadata" ] print "❗ Ты готов оспорить все старые данные? (напиши 'YES'): " if STDIN.gets.chomp.strip == "YES" # БЕК: Оборачиваем в транзакцию, чтобы убрать когнитивный шум (WARNINGS) ActiveRecord::Base.transaction do ActiveRecord::Base.connection.execute("SET CONSTRAINTS ALL DEFERRED;") tables.each do |table| # МАСК: RESTART IDENTITY возвращает Анне ID: 1. Порядок восстановлен. ActiveRecord::Base.connection.execute("TRUNCATE TABLE #{table} RESTART IDENTITY CASCADE;") puts " ✅ #{table} — Чисто." end ActiveRecord::Base.connection.execute("SET CONSTRAINTS ALL IMMEDIATE;") end puts "\n🌱 ФАЗА ВОССТАНОВЛЕНИЯ: Наполнение данными..." Rake::Task["db:seed"].invoke puts "\n🍎 ВЕРДИКТ: Система чиста и готова к работе." puts " Терапевт: Анна (id: 1) | Клиент: Иван (id: 1)" else puts "\n❌ Сопротивление изменениям: Очистка отменена." end end end