Сервер: дочистить PostgreSQL runtime и документацию

This commit is contained in:
AidarKC
2026-07-27 18:01:15 +04:00
parent b5116474c7
commit 618a30c2ab
20 changed files with 47 additions and 46 deletions
@@ -36,10 +36,6 @@ public final class DbController implements DbProvider {
return delegate.getConnection();
}
public boolean isPostgres() {
return true;
}
@Override
public void close() {
delegate.close();
@@ -7,7 +7,7 @@ import java.sql.SQLException;
/**
* Базовый JDBC provider поверх DriverManager.
*
* Не знает ничего про SQLite/PostgreSQL как про доменные режимы:
* Не знает ничего про конкретный доменный режим БД:
* конкретные параметры и post-connect инициализация задаются снаружи.
*/
public final class DriverManagerDbProvider implements DbProvider {
@@ -24,7 +24,7 @@ import java.sql.SQLException;
* - эта схема проще и прозрачнее, чем много обратных триггеров по разным таблицам;
* - если любой шаг не удался, делаем rollback и БД остаётся в исходном состоянии;
* - файловые действия (.bch / .tmp_bch) сознательно НЕ входят в эту транзакцию:
* SQLite не может атомарно закоммитить и SQL, и файловую систему сразу;
* SQL-транзакция и файловая система не коммитятся атомарно вместе;
* поэтому БД-чистка делается здесь, а файловая чистка будет следующим шагом
* отдельным recovery/resync-слоем после успешного commit.
*
@@ -14,7 +14,7 @@ import java.util.List;
* Таблица: solana_users
*
* Колонки:
* - login TEXT PRIMARY KEY (COLLATE NOCASE)
* - login TEXT PRIMARY KEY
* - blockchain_name TEXT NOT NULL
* - solana_key TEXT NOT NULL
* - blockchain_key TEXT NOT NULL
@@ -8,7 +8,7 @@ import java.util.Base64;
* Таблица: solana_users
*
* Поля:
* - login — PRIMARY KEY (TEXT) (case-insensitive на уровне COLLATE NOCASE)
* - login — PRIMARY KEY (TEXT)
* - blockchain_name — TEXT NOT NULL
* - solana_key — TEXT NOT NULL
* - blockchain_key — TEXT NOT NULL
@@ -81,4 +81,4 @@ public class SolanaUserEntry {
return null;
}
}
}
@@ -4,7 +4,7 @@
-- Назначение:
-- - поднять пустую PostgreSQL БД сервера SHiNE с нуля;
-- - включить таблицы модуля синхронизации Solana users;
-- - включить runtime-таблицы сервера без legacy SQLite таблиц:
-- - включить runtime-таблицы сервера без legacy-таблиц старого runtime:
-- * НЕ создаём solana_users
-- * НЕ создаём direct_messages
-- * основной runtime DM storage = signed_messages
@@ -12,7 +12,7 @@
-- Важно:
-- - источник истины по пользователям: solana_user_pda_current;
-- - runtime table blockchain_state остаётся как локальное серверное состояние chain,
-- но не мигрируется из старой SQLite и не считается identity-слоем;
-- но не мигрируется из старого локального runtime и не считается identity-слоем;
-- - триггеры переписаны под PostgreSQL и сохраняют текущую серверную логику.
BEGIN;