Novator / Pandora

P2P Social Network

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Падает после запуска

Slavenin opened this issue · comments

commented

Обновил версию до последней, перезапускаю, две секунда и программа вылетает, ошибок не показывает.

Под Linux или под Windows?
Если Linux, то что в консоль пишет? (Запусти из командной строки /Pandora/pandora.sh)
Если винда, то какие последние строчки в файле /Pandora/base/stdout.log ?

Попробуй удалить базу /Pandora/base/pandora.sqlite.

commented

Ну да, падает в базе. Сносить всё не очень хочется, чтобы потом не настраивать заново. В какой таблице не хватает поля?

C:/Program Files (x86)/Pandora/ruby193/lib/ruby/gems/1.9.1/gems/sqlite3-1.3.7-x86-mingw32/lib/sqlite3/database.rb:91:in initialize': no such column: sha1 (SQLite3::SQLException) from C:/Program Files (x86)/Pandora/ruby193/lib/ruby/gems/1.9.1/gems/sqlite3-1.3.7-x86-mingw32/lib/sqlite3/database.rb:91:innew'
from C:/Program Files (x86)/Pandora/ruby193/lib/ruby/gems/1.9.1/gems/sqlite3-1.3.7-x86-mingw32/lib/sqlite3/database.rb:91:in prepare' from C:/Program Files (x86)/Pandora/ruby193/lib/ruby/gems/1.9.1/gems/sqlite3-1.3.7-x86-mingw32/lib/sqlite3/database.rb:134:inexecute'
from pandora.rb:1695:in select_table' from pandora.rb:1793:inget_tab_select'
from pandora.rb:2397:in select' from pandora.rb:6119:inresume_harvest'
from pandora.rb:10544:in block in start_or_stop_hunt' from pandora.rb:22544:incall'
from pandora.rb:22544:in main' from pandora.rb:22544:ininitialize'
from pandora.rb:22965:in new' from pandora.rb:22965:in

'

А разве пандора не поддерживает миграцию данных в базе?

@Konard, нет, сейчас Пандора не умеет сама пересоздавать таблицу (в базе /base/pandora.sqlite), если метаданные (файл /model/01-base.xml) были изменены. Я давно хочу это сделать, задача стоит в TODO, но руки так и не дошли.

По идее, при изменении файла метаданных, Пандора должна это прочухать, пересоздать соответствующую таблицу и перенести данные. Но это не реализовано.

@Slavenin, поэтому сейчас только 2 способа пересоздать таблицу:

  1. либо в Пандоре открыть нужную таблицу (в твоём случае Мир-Файлы), нажать правой кнопкой мыши и выбрать "Пересоздать". Потом закрыть список и снова открыть. Но все данные в этой таблице будут потеряны.
  2. либо удалить базу (/base/pandora.sqlite) и Пандора её создаст заново - но при этом будут потеряны данные всех таблиц, включая Людей, Ключи и Узлы.

Добавил обработку исключений при работе с таблицами:
теперь прога валиться не будет, а будет писать в лоток "Кривой select", "Кривой update".
Это будет означать, что надо пересоздать таблицу.

@Slavenin, чтобы Пандора не падала при запуске, запусти её с другим портом,
допиши в "Свойствах" ярлыка Pandora на Рабочем столе:

..pandora.rb --port 1111

Тогда она не сможет подключиться сама к себе, и охота не пройдёт.
Ты сможешь открыть Мир-Файлы и пересоздать таблицу.

commented

А просто создать поле в бд через клиент к sqlite никак?

Можно добавить новое поле.
Можно переименовать существующее поле.
Можно разделить одно поле на 2.
Можно слить 2 поля в одно.

Всё это можно сделать. И это стоит в TODO. Но, как выше писал, я это пока не сделал.
Можешь сам сделать выскакивающий диалог, делающий всё указанное при обнаружении разницы между базой и метаданными, и прислать мне пул-реквест.

commented

Блин, я сам могу добавить это поле в бд, мне нужно название таблицы куда его вставлять

Название таблицы "blobs".
Там чо, уже так много файлов заведено? :)

p.s. Сделай выгрузку предварительно "Мир-Файлы", ПКМ "Выгрузить", формат csv.

Ты мне скажи, чо, серьезно какие-то уже данные хранишь?
Я то ведь думаю, что Пандорой никто не пользуется всерьез. Если не так, то возможно это меня сподвигнет-таки..

Кстати, я месяца 2 назад сделал автоматическое добавление поля через "ALTER TABLE ADD COLUMN" (функция insert_new_filed), теперь Пандора сама умеет автоматически добавлять недостающие поля.

commented

Да не то чтобы прям храню, сейчас переехал на другую ось, стало интересно. Есть какой-то рабочий узел к которому можно подключиться?

Сомневаюсь. Имхо, сейчас Пандорой по-хорошему нельзя пользоваться. Если только как средством обмена шифрованными сообщениями, но это мало кому интересно.