fix(contracts): migrate voskhod programs.program_type back to 'capital'
Автоматическая CI/CD-миграция (soviet::migrate) раньше переименовывала programs.program_type[id=4] voskhod в 'blagorost', но coagreements.type для той же программы никогда не переименовывался и остаётся 'capital' — отсюда расхождение двух таблиц на одном и том же боевом кооперативе, которое видно любым прямым запросом к цепочке и вносит путаницу. 'capital' — каноничное значение по всей цепочке решений в этой сессии: это то, что реально в coagreements.type, то, на что рассчитывает _capital_program в lib/consts.hpp, и то, что теперь везде в controller/boot. Новый блок в migrate() приводит programs.program_type к нему же — идемпотентно, сработает автоматически на следующем деплое soviet, без ручных действий на проде. soviet и capital пересобраны локально — компилируются чисто. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -12,6 +12,24 @@
|
||||
void soviet::migrate() {
|
||||
require_auth(_soviet); // Проверяем авторизацию
|
||||
|
||||
// Откат program_type для кооператива voskhod, программа id=4: blagorost -> capital.
|
||||
// Предыдущая версия этой миграции переименовывала programs.program_type в
|
||||
// 'blagorost', но coagreements.type для той же программы (program_id=4) всегда
|
||||
// оставался 'capital' и никогда не переименовывался — таблицы разъехались.
|
||||
// 'capital' — каноничное значение (используется coagreements.type, contract-
|
||||
// константой _capital_program и всем controller-кодом); эта миграция приводит
|
||||
// programs.program_type к нему же. Идемпотентно.
|
||||
{
|
||||
eosio::name coopname = "voskhod"_n;
|
||||
programs_index programs(_soviet, coopname.value);
|
||||
auto program_it = programs.find(4);
|
||||
if (program_it != programs.end() && program_it->program_type != "capital"_n) {
|
||||
programs.modify(program_it, _soviet, [&](auto &pr) {
|
||||
pr.program_type = "capital"_n;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// ────────────────────────────────────────────────────────────────────────
|
||||
// Разовая очистка ФАНТОМНЫХ участников кооператива fgrtejiwnynn (инцидент
|
||||
// 2026-06-04). Удаляем строки soviet::participants для 6 дублей-аккаунтов,
|
||||
|
||||
Reference in New Issue
Block a user