вы удалили таблицу из базы данных, но не удалили ее из таблицы _YOURCLUSTERNAME.sl_table.
Важно использовать "_" перед YOURCLUSTERNAME.
4 ШАГА, чтобы решить проблему:
<сильный>1. Получить tab_id
выберите tab_id из _YOURCLUSTERNAME.sl_table, где tab_relname='MYTABLENAME' и tab_nspname='MYSCHEMANAME'
Он возвращает номер 2 в MYDATABASE
<сильный>2. Удалить триггеры
выберите _YOURCLUSTERNAME.altertablerestore(2);
Это может вернуть ошибку. Т.к. пытается удалить триггеры в исходной таблице, а теперь там новая. <сильный>3. Удалить индекс slony, если он был создан
выберите _YOURCLUSTERNAME.tableDropKey(2); Это может вернуть ошибку. Т.к. пытается удалить индекс в исходной таблице, а теперь есть новая таблица.
<сильный>4. Удалить таблицу из sl_table
удалить из таблицы _YOURCLUSTERNAME.sl_table, где tab_id = 2;
Лучший способ удалить таблицу:
<сильный>1. Удалите таблицу из кластера:
выберите tab_id из _YOURCLUSTERNAME.sl_table, где tab_relname='MYTABLENAME' и tab_nspname='MYSCHEMANAME'
Он возвращает номер 2 в MYDATABASE
Выполнить с помощью slonik ‹ myfile.slonik
где myfile.slonik: имя кластера=MYCLUSTER; NODE 1 ADMIN CONNINFO = 'dbname=DATABASENAME host=HOST1_MASTER user=postgres port=5432'; NODE 2 ADMIN CONNINFO = 'dbname=DATABASENAME host=HOST2_SLAVE user=postgres port=5432';
SET DROP TABLE (id = 2, origin = 1);
2 — это tab_id из sl_table, а 1 — это NODE 1, HOST1_MASTER.
<сильный>2. Удалить таблицу из ведомого
с SQL DROP TABLE
person
Oscar Raig Colon
schedule
28.03.2012