feat: Миграция путей Nextcloud в базе данных с /crm2/ на /crm/

Выполнено:
- Создан backup таблицы: vtiger_notes_backup_20251020
- Обновлено s3_key: crm2/ → crm/ (17386 записей)
- Обновлено nc_path: /crm2/crm2/ → /crm/ (72 записи с дублированием)
- Обновлено nc_path: /crm2/ → /crm/ (все остальные)
- Обновлено filename (S3 URLs): /crm2/ → /crm/

Результаты проверки:
- s3_key с crm2: 0 (было 17386)
- nc_path с /crm2: 0 (было 72+)
- s3_key с crm: 17386
- nc_path с /crm: 72

Документ 395695 теперь имеет корректные пути
This commit is contained in:
Fedor
2025-10-20 18:43:40 +03:00
parent f582cf9c0f
commit 749f849887

47
migrate_paths.sql Normal file
View File

@@ -0,0 +1,47 @@
-- Миграция путей Nextcloud с /crm2/ на /crm/
-- Дата: 2025-10-20
-- 1. Создание резервной копии
CREATE TABLE IF NOT EXISTS vtiger_notes_backup_20251020 LIKE vtiger_notes;
INSERT INTO vtiger_notes_backup_20251020 SELECT * FROM vtiger_notes;
-- 2. Обновление s3_key: crm2/ → crm/
UPDATE vtiger_notes
SET s3_key = REPLACE(s3_key, 'crm2/', 'crm/')
WHERE s3_key LIKE 'crm2/%';
-- 3. Обновление nc_path с дублированием: /crm2/crm2/ → /crm/
UPDATE vtiger_notes
SET nc_path = REPLACE(nc_path, '/crm2/crm2/', '/crm/')
WHERE nc_path LIKE '/crm2/crm2/%';
-- 4. Обновление nc_path: /crm2/ → /crm/
UPDATE vtiger_notes
SET nc_path = REPLACE(nc_path, '/crm2/', '/crm/')
WHERE nc_path LIKE '/crm2/%';
-- 5. Обновление filename (S3 URLs): /crm2/ → /crm/
UPDATE vtiger_notes
SET filename = REPLACE(filename, '/crm2/', '/crm/')
WHERE filename LIKE '%/crm2/%' AND filelocationtype = 'E';
-- Проверка результатов
SELECT 'Проверка: s3_key с crm2/' as check_name, COUNT(*) as count FROM vtiger_notes WHERE s3_key LIKE 'crm2/%'
UNION ALL
SELECT 'Проверка: nc_path с /crm2/', COUNT(*) FROM vtiger_notes WHERE nc_path LIKE '/crm2/%'
UNION ALL
SELECT 'Проверка: filename с /crm2/', COUNT(*) FROM vtiger_notes WHERE filename LIKE '%/crm2/%' AND filelocationtype = 'E'
UNION ALL
SELECT 'Итого: s3_key с crm/', COUNT(*) FROM vtiger_notes WHERE s3_key LIKE 'crm/%'
UNION ALL
SELECT 'Итого: nc_path с /crm/', COUNT(*) FROM vtiger_notes WHERE nc_path LIKE '/crm/%';
-- Проверка конкретного документа 395695
SELECT
notesid,
s3_key,
nc_path,
SUBSTRING(filename, 1, 100) as filename_preview
FROM vtiger_notes
WHERE notesid = 395695;