@KraftWood оу, сори, написать - написал, прожать - не прожал)
Несовместимость одновременной работы 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, поэтому сервер и драйвер разных версий также не могут взаимодействовать между собой.
При запуске новой версии можно сохранить старую базу без изменений и просто скопировать из неё данные в новую. Тогда можно будет запускать приложения с разными версиями одной БД, но не одновременно. С откатом версии не будет проблем, в старой версии БД просто останутся данные до переноса (если вы их не меняли).

Старая и новая версия БД могут работать одновременно, но без взаимодействия друг с другом, для этого у них должен быть разный ID. Данные из разных версий БД можно переносить с помощью бэкапов или импорта/экспорта CSV. Чтобы все приложения работали с одной БД и взаимодействовали между собой, они должны использовать одну версию БД (старую или новую).
-
@GhostZ так в том то и суть. Один проект но с разными версиями - работать не может одновременно!
То есть новая версия полностью исключает теперь совместимость работы с БД разных версий одного проекта или других проектов, которые работают с одной и той же базой. Теперь варик только один - готовить отдельную ветку и нытьем да катаньем переводить клиентов на нее. -
@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.