|
В поиске
104 / 52 / 17
Регистрация: 20.04.2014
Сообщений: 826
|
|||||||||||
Как обновляют базы данных при ADO.NET?08.12.2022, 18:54. Показов 1069. Ответов 13
Метки нет (Все метки)
Когда допустим была программа версии 1 после обновления её до версии 2 где в базе были изменения(столбцы, таблицы добавлены и удалены)
Что нужно делать? прочитывать в базе каждый столбец таблице и потом запросами
Просто даже не знаю как грамотнее сформулировать вопрос чтобы в гугле задать так обновление базы звучит как обновление ПО, а не как советы по обновлению внутренних таблиц-столбцов.
0
|
|||||||||||
| 08.12.2022, 18:54 | |
|
Ответы с готовыми решениями:
13
C#, ADO.NET. Как защитить файл базы данных Access от удаления пользователем через проводник? ADO.NET и базы данных Выбор базы данных для ADO.net |
|
403 / 265 / 69
Регистрация: 12.04.2020
Сообщений: 1,404
|
|
| 08.12.2022, 19:41 | |
|
миграции для этого существуют
0
|
|
|
В поиске
104 / 52 / 17
Регистрация: 20.04.2014
Сообщений: 826
|
|
| 08.12.2022, 19:44 [ТС] | |
|
Dr9vik, миграция в ADO.NET? и каким SQLм?
0
|
|
|
403 / 265 / 69
Регистрация: 12.04.2020
Сообщений: 1,404
|
|
| 08.12.2022, 19:46 | |
|
0
|
|
|
14308 / 9389 / 1355
Регистрация: 21.01.2016
Сообщений: 35,410
|
|||
| 08.12.2022, 19:58 | |||
|
1
|
|||
|
403 / 265 / 69
Регистрация: 12.04.2020
Сообщений: 1,404
|
||
| 08.12.2022, 20:08 | ||
|
только вопрос, зачем? если EF все умеет, и для начала хватит с головой
0
|
||
|
В поиске
104 / 52 / 17
Регистрация: 20.04.2014
Сообщений: 826
|
||
| 08.12.2022, 20:12 [ТС] | ||
|
Usaga, Задачи ни какой нету. Просто интересно какие варианты применяют в основном.
Добавлено через 2 минуты
0
|
||
|
403 / 265 / 69
Регистрация: 12.04.2020
Сообщений: 1,404
|
|
| 08.12.2022, 20:16 | |
|
0
|
|
|
В поиске
104 / 52 / 17
Регистрация: 20.04.2014
Сообщений: 826
|
|
| 08.12.2022, 20:28 [ТС] | |
|
Dr9vik, https://www.cyberforum.ru/ado-... 50548.html
На CORE перешел и вопрос частично был решел потом гемор в написании этих конфигов. EF тот что не core тот меня вообще с командами миграции просто выбесил постоянно какая то ошибка. В общем EF надо время и терпение и желание которых нету.
0
|
|
|
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,768
|
|||
| 08.12.2022, 21:06 | |||
Сообщение было отмечено КВА696 как решение
РешениеЕщё на EF не получится реализовать динамическое изменение набора колонок для проекции. Ну т.е. теоретически это возможно, если генерировать EF-контекст в рантайме, но это уже какое-то сверхшаманство. А у EF-миграций есть один весомый (для некоторых сценариев) недостаток - они не умеют работать по реальной структуре БД, только по предполагаемой, указанной в метаданных. Добавлено через 13 минут Вариант - пишется/покупается/ищется на гите утилита, которая умеет сравнивать структуру двух БД и строить SQL, устраняющий различия. Т.е. вы в своей девелоп-базе добавили поля/таблицы, поменяли индексы и т.п., потом запустили утилиту, она выдала список различий. Может автоматически применить. Может выгрузить информацию о структуре эталонной БД в JSON, чтобы потом на её основании построить дифф и обновить БД где-то у клиента (не имея доступа к вашей девелоп-базе).
2
|
|||
|
В поиске
104 / 52 / 17
Регистрация: 20.04.2014
Сообщений: 826
|
|
| 08.12.2022, 21:19 [ТС] | |
|
kotelok, при втором варианте получается клиент должен последовательно обновления получать вначале версия 1 потом 2 потом 3 или при этом варианте умеет соображать при пропуске к примеру 2 версии?
Если я правильно понял liquibase о котором написал Usaga это второй вариант? первый вариант тоже чем то похож на 2. А простым перебором разве не пользуются к примеру открыл базу проверил все ли таблици есть после открыл каждую таблицу и выдал имена столбцов и сравнил с полями классов и относительно них добавил или удалил столбец. Добавлено через 4 минуты я как то думал что у умного SQL есть запрос волшебный создать таблицу если она есть не создавать (он есть CREATE TABLE IF NOT EXISTS), а если та таблица что существует не соответствует запросу то как то самостоятельно удалить или добавить ненужные столбцы))))
0
|
|
|
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,768
|
||
| 08.12.2022, 21:21 | ||
|
Второй вариант - это когда у вас есть целевая структура эталонной базы, и есть структура базы клиента в любом состоянии, в т.ч. в состоянии "ну я тут ручками залез и что-то поломал". Утилита строит диф для доведения базы клиента до эталона. С учётом всех нюансов, с учётом правильного порядка выполнения полученных SQL. Это и есть тот самый "простой перебор". Но на деле он не такой уж и простой оказывается, когда начинаешь это реализовывать. Куча нюансов. И тут вообще никакого понятия версий нет по сути, есть лишь эталон, к которому надо привести клиентскую базу, и какое-то непонятное текущее состояние клиентской базы.
1
|
||
|
В поиске
104 / 52 / 17
Регистрация: 20.04.2014
Сообщений: 826
|
|
| 08.12.2022, 21:26 [ТС] | |
|
kotelok, тобишь это вариант ТЕТ-А-ТЕТ когда с каждым клиентом придется работать индивидуально. А как работают когда клиентов много к примеру браузер опера, надо немного в базе что нить поправить. И у клиентов разные версии кто то подряд кто то через 1-2 обновляется. В таких случаях только первый вариант?
0
|
|
|
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,768
|
|||
| 08.12.2022, 21:35 | |||
Сообщение было отмечено КВА696 как решение
РешениеНе по теме:
https://www.cyberforum.ru/ado-... 61373.html https://www.cyberforum.ru/ado-... 93077.html И вопрос даже не в том, что, наверное, большинство задач (так или наче) всё же можно изобразить в EF-синтаксисе, изрядно попотев. Вопрос в скорости разработки. С SQL-запросом, если он ну совсем заморочный, я могу в т.ч. сходить к аналитику, или к другому программисту, который EF даже не видел, и в итоге получить качественное решение. С EF так не получится, с EF ты каждый раз сидишь и пытаешься, пытаешься, потом переделываешь, т.к. план плохой получился и оно работает медленее исходного SQL. Добиваешься результата, потратив лишние пару часов, добавляешь пару индексов в БД, коммитишь ... а спустя месяц к тебе приходит другой разработчик и интересуется, что эта мега-конструкция вообще делает, т.к. он ещё не дорос до того уровня упоротости, что я постиг в процессе составления (да и я за месяц уже подзабыл все нюансы). И я даю ему исходный запрос, он его смотрит и все вопросы сразу отпадают. Добавлено через 3 минуты 1. Вы собираете релиз програмы. В этот момент утилита сканирует вашу БД, сохраняет информацию о её полной структуре в JSON. Этот JSON включается в дистрибутив/обновлятор (общий и одинаковый для всех 2000 клиентов). 2. Клиент запускает у себя дистрибутив/обвновлятор программы. В процессе обновления запускается та же самая утилита, которая сканирует БД клиента и выдаёт информацию о её полной структуре в JSON той же структуры. 3. Далее, всё так же в процессе обновления на стороне клиента, утилита сравнивает эталонный JSON из инсталлятора и тот JSON, что получился у конкретно клиента по его базе. Выявляет различия. Строит дифф-SQL. Выполняет дифф-SQL на базе клиента. 4. Итог - независимо от того, в каком состоянии у клиента база была до обновления, после обновления она будет на 100% соответствовать нужной структуре.
1
|
|||
| 08.12.2022, 21:35 | |
|
Помогаю со студенческими работами здесь
14
ADO Net C# Удаление сток из базы данных Программное создание базы данных через ADO.NET Реализация базы данных на С# без ADO.net и SQL серверов Проблемы с ADO при подключении базы данных в Visual Basic 6 Вывод таблицы базы данных на форму при помощи ADO Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|