Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
 FB 2.5 Переименовать объекты базы данных и их зависимости  [new]
jugl1k
Member

Откуда:
Сообщений: 2
Добрый вечер!

Мне в наследство досталось база данных firebird с примерно 200 таблицами и 1000 psql процедурами. В данные момент в базе очень не интуитвные название таблиц, полей и PSQL процедур. Мы хотим сделать небольшой рефакторинг и подправить в первую очередь название таблиц и их полей. Изменить название таблиц и полей не так просто, потому как у множество из них существуют зависимости, так как они используются в процедурах, триггерах и view. Чтобы все подправить руками, уйдет огромное количество времени. поэтому может есть какое-то решение, которое при изменение название таблиц и полей, меняет и название во всех объектов, которые их используют, приготовив соответственны sql скрипт. Я нашёл InterBase/Firebird Development Studio и их решение как раз эту проблему решает. Вот линк http://www.sqlly.com/features.html
Но похоже, что этот продукт уже довно неподдержеваетса и я получаю access violation при генераций соответствующего скрипта. Поэтому может ктото может посоветовать другое решение или дать другой полезный совет. Альтернативно мы даже думали, что можно пытаться такой парсер написать самим.

Зарание спасибо!
27 мар 19, 01:12    [21844408]     Ответить | Цитировать Сообщить модератору
 Re: FB 2.5 Переименовать объекты базы данных и их зависимости  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 47677

jugl1k
Мы хотим сделать небольшой рефакторинг и подправить в первую очередь название таблиц и их
полей. Изменить название таблиц и полей не так просто, потому как у множество из них
существуют зависимости, так как они используются в процедурах, триггерах и view.

Более того, они используются в запросах, посылаемых из приложений. Сюрприз?

Проще будет создать на них view с желаемыми именами, а сами таблицы не трогать.
Второе по правильности решение - создать новую базу с нуля с нужными названиями и наладить
в неё репликацию из первой.

Posted via ActualForum NNTP Server 1.5

27 мар 19, 01:43    [21844418]     Ответить | Цитировать Сообщить модератору
 Re: FB 2.5 Переименовать объекты базы данных и их зависимости  [new]
jugl1k
Member

Откуда:
Сообщений: 2
Спасибо за совет!
Всe логика лежит на уровне базы, в аппликации переписать запросы самое простое будет. Еще аргумент менять название связено с тем, что хотим объеденить 2 большие базы в единую, и хочется перед этим сделать все классификаторы идентичными (клиенты, поставщики, работники итд.). VIEW использывать идея не плохая, но PSQL защиты именно на таблицы, поэтому все равно их всех предётся переписыват руками.

Программисты же делают рефакторинг своего кода. И современные IDE позволяют изменить тоже и название переменных/функций везде, почему бы что то похожое немогло бы быть в Firebird.

Не совсем понел вторую мысль с новой базой и репликацией .
27 мар 19, 02:38    [21844424]     Ответить | Цитировать Сообщить модератору
 Re: FB 2.5 Переименовать объекты базы данных и их зависимости  [new]
Старый плюшевый мишка
Member

Откуда:
Сообщений: 580
jugl1k
Не совсем понел вторую мысль с новой базой и репликацией .


Да чего там понимать. Выгружаешь SQL-скрипт метаданных, в любом текстовом редакторе делаешь контекстную замену старых названий на новые, создаёшь новую базу этим скриптом и переливаешь данные из старой базы в новую в соответствии со списком замен.
27 мар 19, 03:12    [21844435]     Ответить | Цитировать Сообщить модератору
 Re: FB 2.5 Переименовать объекты базы данных и их зависимости  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 47677

jugl1k
VIEW использывать идея не плохая, но PSQL защиты именно на таблицы

Повторяю медленно: старые таблицы и процедуры пока не трогай. Для себя создай новые вьюхи
и новые процедуры с нужными именами, которые обращаются к старым.

Когда всё заработает - можешь потихонечку рефакторить старый код.

Posted via ActualForum NNTP Server 1.5

27 мар 19, 13:33    [21845015]     Ответить | Цитировать Сообщить модератору
 Re: FB 2.5 Переименовать объекты базы данных и их зависимости  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 47677

jugl1k
Программисты же делают рефакторинг своего кода. И современные IDE позволяют изменить тоже
и название переменных/функций везде, почему бы что то похожое немогло бы быть в Firebird.

Как и сказал Дед: загружаешь скрипт создания своей БД в "современную IDE", рефакторишь как
в голову взбредёт, создаёшь новую БД из нового скрипта, переливаешь данные из старой. Всё,
телемаркет.

Posted via ActualForum NNTP Server 1.5

27 мар 19, 13:40    [21845040]     Ответить | Цитировать Сообщить модератору
Все форумы / Firebird, InterBase Ответить