SHA256
Сервер: дочистить PostgreSQL runtime и документацию
This commit is contained in:
@@ -36,10 +36,6 @@ public final class DbController implements DbProvider {
|
||||
return delegate.getConnection();
|
||||
}
|
||||
|
||||
public boolean isPostgres() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() {
|
||||
delegate.close();
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@ import java.sql.SQLException;
|
||||
/**
|
||||
* Базовый JDBC provider поверх DriverManager.
|
||||
*
|
||||
* Не знает ничего про SQLite/PostgreSQL как про доменные режимы:
|
||||
* Не знает ничего про конкретный доменный режим БД:
|
||||
* конкретные параметры и post-connect инициализация задаются снаружи.
|
||||
*/
|
||||
public final class DriverManagerDbProvider implements DbProvider {
|
||||
|
||||
+1
-1
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user