у себя в орм?
Привет. Подключаюсь к БД, вычитываю текущие метаданные и сравниваю с эталоном, который в программе имеется. По разнице генерирую Update.sql. При необходимости есть возможность загрузки данных в справочники и выполнение внешнего sql-скрипта.
Как ты с "эталоном сравниваешь" , я хочу сделать как в django/ в классе поле поменял, раз миграцию вызвал он тебе сам все определил) но так что бы из pas файла собрать нужную инфу я так понимаю парсер нужен. может есть уже готовые парсеры pas файла?
У меня есть структуры, в которых описываются метаданные. В исходниках происходит заполнение этих структур. Каких-то парсеров я не делал отдельных. procedure TReportsMeta.Table_Filter; begin var T: MetaTableHelper; T.Table := Scheme.AddTable('RPT_WT_FILTER', 'Таблица "Фильтры"'); T.WorkTable.SetGUID('{4F454C5F-2B64-4904-BCD1-35601037BBE7}'); T.Int('ID').PKey.AutoInc(0); T.GUID('UID').NotNull.Indexed(True); T.Int('ID_FILTER_CATEGORY', 'ID категории фильтра').FKey('RPT_CT_FILTER_CATEGORY', 'ID').NotNull; T.Str('TABLE_LINK', 64, 'Таблица-источник данных'); T.Str('TABLE_WHERE', 512, 'Условие фильтрации таблицы-источника'); T.Str('FILL_QUERY', 512, 'Запрос для получения данных для фильтра'); T.Int('PARAM_COUNT', 'Количество параметров у запроса/условия фильтрации'); T.Str('CREATE_USER', 64, 'Имя пользователя, создавшего запись').Service(sfUserName).NotNull; T.TimeStamp('CREATE_TIME', 'Время создания').Service(sfTimeStamp).NotNull; T.Str('CHANGE_USER', 64, 'Имя пользователя').Service(sfUserName); T.TimeStamp('CHANGE_TIME', 'Время изменения').Service(sfTimeStamp); T.Table.SchemeTo(Scheme); end;
Обсуждают сегодня