FB3 и ODS
Привет всем.
Родная ODS для Firebird 3 имеет номер 12.0. И сервер отказывается работать с базами от предыдущих версий Firebird — при попытке подключения он возвращает ошибку. Возможно кто то подумает — «ну что за фигня, где обратная совместимость?». Однако лично я на стороне разработчиков FB.
Потому что в провайдере тоже приходится «корячиться» с нюансами ODS. Например — в схемах метаданных. И хотя месива в коде, обрабатывающего разные ODS, не наблюдается, все равно — напрягает. Ну а раз такая пьянка с отказом в FB3 от поддержки ODS ниже 12.0, то я тоже влеплю в код инициализации подключения к FB3 такую проверку. И буду выкидывать ошибку «текущая ODS БД не поддерживается». По идее, эта проверка никогда не сработает — потому что сервер просто не даст подключиться к такой БД.
Хотя, в прочем, товарищи приближенные к телу (сервера) говорят что FB3 возможно все таки будет работать со старыми БД. Но через встроенный FB2.5 (который будет работать в качестве провайдера). И, соответственно, будет о себе сообщать как FB2.5, а не как FB3. То есть IBProvider, в этом случае, задействует подсистему для 2.5 и все будет тип-топ.
А, ну да. Для тех кто совсем не в курсе. Старые БД мигрируют на новую ODS через бакап/ресторе. То есть вы бакапите базу на её родном сервере (к примеру, на FB2.5) и ресторите её на FB3.