Падает после запуска
Slavenin opened this issue · comments
Обновил версию до последней, перезапускаю, две секунда и программа вылетает, ошибок не показывает.
Под Linux или под Windows?
Если Linux, то что в консоль пишет? (Запусти из командной строки /Pandora/pandora.sh)
Если винда, то какие последние строчки в файле /Pandora/base/stdout.log ?
Попробуй удалить базу /Pandora/base/pandora.sqlite.
Ну да, падает в базе. Сносить всё не очень хочется, чтобы потом не настраивать заново. В какой таблице не хватает поля?
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:in
new'
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:inprepare' 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:in
execute'
from pandora.rb:1695:inselect_table' from pandora.rb:1793:in
get_tab_select'
from pandora.rb:2397:inselect' from pandora.rb:6119:in
resume_harvest'
from pandora.rb:10544:inblock in start_or_stop_hunt' from pandora.rb:22544:in
call'
from pandora.rb:22544:inmain' from pandora.rb:22544:in
initialize'
from pandora.rb:22965:innew' from pandora.rb:22965:in
А разве пандора не поддерживает миграцию данных в базе?
@Konard, нет, сейчас Пандора не умеет сама пересоздавать таблицу (в базе /base/pandora.sqlite), если метаданные (файл /model/01-base.xml) были изменены. Я давно хочу это сделать, задача стоит в TODO, но руки так и не дошли.
По идее, при изменении файла метаданных, Пандора должна это прочухать, пересоздать соответствующую таблицу и перенести данные. Но это не реализовано.
@Slavenin, поэтому сейчас только 2 способа пересоздать таблицу:
- либо в Пандоре открыть нужную таблицу (в твоём случае Мир-Файлы), нажать правой кнопкой мыши и выбрать "Пересоздать". Потом закрыть список и снова открыть. Но все данные в этой таблице будут потеряны.
- либо удалить базу (/base/pandora.sqlite) и Пандора её создаст заново - но при этом будут потеряны данные всех таблиц, включая Людей, Ключи и Узлы.
Добавил обработку исключений при работе с таблицами:
теперь прога валиться не будет, а будет писать в лоток "Кривой select", "Кривой update".
Это будет означать, что надо пересоздать таблицу.
@Slavenin, чтобы Пандора не падала при запуске, запусти её с другим портом,
допиши в "Свойствах" ярлыка Pandora на Рабочем столе:
..pandora.rb --port 1111
Тогда она не сможет подключиться сама к себе, и охота не пройдёт.
Ты сможешь открыть Мир-Файлы и пересоздать таблицу.
А просто создать поле в бд через клиент к sqlite никак?
Можно добавить новое поле.
Можно переименовать существующее поле.
Можно разделить одно поле на 2.
Можно слить 2 поля в одно.
Всё это можно сделать. И это стоит в TODO. Но, как выше писал, я это пока не сделал.
Можешь сам сделать выскакивающий диалог, делающий всё указанное при обнаружении разницы между базой и метаданными, и прислать мне пул-реквест.
Блин, я сам могу добавить это поле в бд, мне нужно название таблицы куда его вставлять
Название таблицы "blobs".
Там чо, уже так много файлов заведено? :)
p.s. Сделай выгрузку предварительно "Мир-Файлы", ПКМ "Выгрузить", формат csv.
Ты мне скажи, чо, серьезно какие-то уже данные хранишь?
Я то ведь думаю, что Пандорой никто не пользуется всерьез. Если не так, то возможно это меня сподвигнет-таки..
Кстати, я месяца 2 назад сделал автоматическое добавление поля через "ALTER TABLE ADD COLUMN" (функция insert_new_filed), теперь Пандора сама умеет автоматически добавлять недостающие поля.
Да не то чтобы прям храню, сейчас переехал на другую ось, стало интересно. Есть какой-то рабочий узел к которому можно подключиться?
Сомневаюсь. Имхо, сейчас Пандорой по-хорошему нельзя пользоваться. Если только как средством обмена шифрованными сообщениями, но это мало кому интересно.