Несовместимость одновременной работы 28 и 29 BAS

Поддержка
  • Если запущен бас с движком от старых версий, включая 28 движок, то уже невозможно запустить 29. И наоборот.
    Либо одна версия, либо другая. Мало того, если будет запущена 29, то она изменит версию и формат базы. И откатиться уже будет проблематично, без потерь данных.

    На данный момент из-за этого нет никакой возможности перейти на новую версию движка.

    Единственный простой пока выход, кмк, - это для новой версии 29 использовать другую папку установки монго (либо выбирать с какой версией монго работать), либо полностью отказываться от старых версий (в нашем случае это не возможно) на одном и том же сервере.

  • Переписали бы на чистые вызовы с питона или njs.

  • @Valerax особенность монго была в том, что она из коробки и была совместима с любой версий БАСа. Для "запросов" у нас есть работа с базой постгресс. Но монго используется для технических вещей, типа авторизации, сохранения ключей и работы с профилями для новичков или для мелких задач. Так же используется в других сопутствующих программах на БАСе в единой базе данных. Все переписывать и адаптировать "запросы" под разные версии монго - нецелесообразно.

    Да и в любом случае это вообще никак не решает проблему. Запустить два приложения на разных движках нельзя. Толку от переписанных вызовов, если старая версия интерфейса тупо вообще не будет работать с БД - бд будет отключена и к ней доступа для пользователя не будет, а новая версия интерфейса есть лишь в новой.

  • @Ajshma, в BAS 28.9.3 сервер MongoDB обновлён с версии 2.6.6 до 8.0.4, а C++ драйвер с legacy 1.0.0-rc3 до 4.0.0. Из-за перехода с механизма хранения MMAPv1 на WiredTiger файлы старой и новой баз совершенно не совместимы. Кроме того, изменён wire-протокол и полностью переработан API, поэтому сервер и драйвер разных версий также не могут взаимодействовать между собой.


    При запуске новой версии можно сохранить старую базу без изменений и просто скопировать из неё данные в новую. Тогда можно будет запускать приложения с разными версиями одной БД, но не одновременно. С откатом версии не будет проблем, в старой версии БД просто останутся данные до переноса (если вы их не меняли).
    ba9a48bf-129f-496e-8d97-45a5e7a9d773-image.png


    Старая и новая версия БД могут работать одновременно, но без взаимодействия друг с другом, для этого у них должен быть разный ID. Данные из разных версий БД можно переносить с помощью бэкапов или импорта/экспорта CSV. Чтобы все приложения работали с одной БД и взаимодействовали между собой, они должны использовать одну версию БД (старую или новую).

  • @GhostZ так в том то и суть. Один проект но с разными версиями - работать не может одновременно!
    То есть новая версия полностью исключает теперь совместимость работы с БД разных версий одного проекта или других проектов, которые работают с одной и той же базой. Теперь варик только один - готовить отдельную ветку и нытьем да катаньем переводить клиентов на нее.

  • @Ajshma, ну с этим ничего не поделать.

  • @Ajshma @GhostZ just to clarify: the scripts that are not using actions from modul "Database" shouldn't have a problem with migration to 29 version OR BAS is using db for some background processes and all scripts may have problems?

  • @111cbt111, if you don't use a database, there won't be any problems. And if you just use a database, there won't be any problems either. You just need to transfer data from the old database to the new one, and this is done with the click of a button. The only problems will be if you want to use one database in old and new versions.

  • @GhostZ thank you for clarification

  • @Ajshma have same issue, it is insane that this case was not taken into consideration

  • 0 Votes
    9 Posts
    692 Views
  • 0 Votes
    3 Posts
    467 Views
  • 0 Votes
    20 Posts
    2162 Views
  • 0 Votes
    6 Posts
    905 Views
  • Зависает BAS

    Поддержка
    0 Votes
    3 Posts
    2032 Views