Прямое редактирование БД

Started by enp, August 16, 2012, 02:54:56 PM

Previous topic - Next topic

enp

Здравствуйте!

Насколько допустимо прямое изменение БД (например, создание ноды или хотя бы изменение комментария)? От чего зависит время, через которое в запущенных консолях появятся сделанные изменения, произойдет ли это автоматически?

Victor Kirhenshtein

В подавляющем большинстве случаев прямое изменение БД работать не будет. Большая часть информации кэшируэтся, и сервер не рассчитывает на то, что информация изменяется в БД. В большинстве случаев изменения, сделанные напрямую, будут перезаписаны сервером. Если какие-то изменения требуются для интеграции с другими системами, то можно использовать API сервера.

enp

Проблема в том, что API только для Java - и это несколько неудобно :(

Victor Kirhenshtein

Ну, есть еще C API :) А что конкретно надо сделать? Возможно есть обходной путь без использования API...

enp

Пока именно создание ноды и изменение комментария внешним перловым скриптом - и городить для этого Java-прослойку совсем не хочется, а с другой стороны связываться с perl XS с учетом худшей документированности C API тоже не очень хочется.

Victor Kirhenshtein

Да, без API ноду не создать. Похоже что надо раширять набор интерфейсов к системе :) Я вижу несколько возможных путей - web services, клиент для командной строки, или расширение возможностей NXSL скриптов + возможность их запуска внешней командой.

enp

#6
Если б протокол обмена с сервером базировался на чем-то широко распространенном (JSON/XML-RPC? REST? Hessian/Burlap? Protobuf? Thrift?), то проблемы, наверное, не было бы.

А возможность дернуть NXSL-скрипт извне как из командной строки, так и по HTTP  - замечательная идея. Но в этом случае внутри NXSL-скриптов должен быть доступен аналог Java API. Я даже боюсь себе представить трудоемкость такой задачи. Пока научить бы NXSL с таблицами работать ...