Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Организация обновлений программы  [new]
tiproktikum
Member

Откуда:
Сообщений: 61
Не знаю в какую точно ветку писать этот вопрос.

Пишу программу на Delphi (БД MS SQL), на ней уже начали работать пользователи. Теперь остро встал вопрос: как грамотно проводить обновления? С программой еще пока особых проблем нет, а вот с базой не ясно.

Я все время слежу за тем, что бы у меня были скрипты создания структуры БД с нуля, для того, что бы в любой момент можно было создать чистую БД. Если я добавляю, например, новое поле, то я корректирую эти скрипты. Но на сервере где установлена рабочая версия программы (у пользователей) мне, я так понимаю, необходим скрипт типа ALTER TABLE..., допустим я его подготовлю один раз, второй и т.д. Тогда моя работа при добавлении полей будет такой: изменить скрипт создания, затем сделать скрипт ALTER TABLE, прогнать последний на всех компах с программой.

Все так делают ? Есть какие то идеи как 2 раза одно и то же не делать? Вообще хотел бы узнать как вы организовываете обновления.
15 май 15, 09:47    [17643319]     Ответить | Цитировать Сообщить модератору
 Re: Организация обновлений программы  [new]
Гхостик
Guest
https://www.sql.ru/forum/1154963/obnovlenie-bd-u-polzovatelya
15 май 15, 09:59    [17643370]     Ответить | Цитировать Сообщить модератору
 Re: Организация обновлений программы  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
прогнать последний на всех компах с программой.
Вы хотели сказать, "на всех компах, где установлена данная БД" ?
15 май 15, 11:21    [17643867]     Ответить | Цитировать Сообщить модератору
 Re: Организация обновлений программы  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
tiproktikum
Не знаю в какую точно ветку писать этот вопрос.

Пишу программу на Delphi (БД MS SQL), на ней уже начали работать пользователи. Теперь остро встал вопрос: как грамотно проводить обновления? С программой еще пока особых проблем нет, а вот с базой не ясно.

Я все время слежу за тем, что бы у меня были скрипты создания структуры БД с нуля, для того, что бы в любой момент можно было создать чистую БД. Если я добавляю, например, новое поле, то я корректирую эти скрипты. Но на сервере где установлена рабочая версия программы (у пользователей) мне, я так понимаю, необходим скрипт типа ALTER TABLE..., допустим я его подготовлю один раз, второй и т.д. Тогда моя работа при добавлении полей будет такой: изменить скрипт создания, затем сделать скрипт ALTER TABLE, прогнать последний на всех компах с программой.

Все так делают ? Есть какие то идеи как 2 раза одно и то же не делать? Вообще хотел бы узнать как вы организовываете обновления.


то есть уже работают юзеры и у вас большие планы по добавлению полей?
15 май 15, 11:36    [17644018]     Ответить | Цитировать Сообщить модератору
 Re: Организация обновлений программы  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
LSV
прогнать последний на всех компах с программой.
Вы хотели сказать, "на всех компах, где установлена данная БД" ?


Если все "компы" работают с одной и той же базой, тогда да, а если каждый со своей - тогда нет
15 май 15, 11:37    [17644023]     Ответить | Цитировать Сообщить модератору
 Re: Организация обновлений программы  [new]
tiproktikum
Member

Откуда:
Сообщений: 61
LSV
прогнать последний на всех компах с программой.
Вы хотели сказать, "на всех компах, где установлена данная БД" ?


я не правильно выразился. в других офисах, где своя база
15 май 15, 12:21    [17644356]     Ответить | Цитировать Сообщить модератору
 Re: Организация обновлений программы  [new]
tiproktikum
Member

Откуда:
Сообщений: 61
Winnipuh
то есть уже работают юзеры и у вас большие планы по добавлению полей?


ну как большие, просто программа развивается и надо добавлять новые поля. И, чую, это будет процесс бесконечный.
15 май 15, 12:23    [17644365]     Ответить | Цитировать Сообщить модератору
 Re: Организация обновлений программы  [new]
Glory
Member

Откуда:
Сообщений: 104751
tiproktikum
Все так делают ? Есть какие то идеи как 2 раза одно и то же не делать? Вообще хотел бы узнать как вы организовываете обновления.

Не все. Некоторые ведут разработку в спец.софте. Который умеет делать точки ветвления и генерировать билды под все релизы.
15 май 15, 12:27    [17644400]     Ответить | Цитировать Сообщить модератору
 Re: Организация обновлений программы  [new]
Nik_Kurta
Member

Откуда: Россия, Симферополь
Сообщений: 66
Используйте репликацию базы данных.
15 май 15, 14:01    [17645204]     Ответить | Цитировать Сообщить модератору
 Re: Организация обновлений программы  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21242
1) В БД должна храниться её текущая версия.
2) Программа должна чётко знать, какую версию БД она хочет.
3) В состав программного комплекса можно ввести отдельную программу-апдейтер версии БД. Например, она может "знать" десяток-другой последних версий, и содержать внутри себя скрипты, необходимые для приведения любой из этих версий БД к наиболее свежей. Соответственно, основная программа, обнаружив, что ей предлагается неподходящая версия БД, запустит этот апдейтер, который выполнит обновление структуры БД без потери данных, добавит или пополнит справочники и пр.
Впрочем, можно то же оформить блоком внутри основного программного комплекса - но решение с отдельной программой мне кажется более гибким.
15 май 15, 14:17    [17645353]     Ответить | Цитировать Сообщить модератору
 Re: Организация обновлений программы  [new]
Okmor
Member

Откуда:
Сообщений: 132
1. Выбросить все скрипты из программы.
2. Запихнуть все скрипты в базу.
У меня так:
CREATE TABLE [dbo].[RSQL](
	[sql_id] [int] IDENTITY(1,1) NOT NULL,
	[sql] [text] NULL,
	[date_mod] [datetime] NULL,
	[Name] [nchar](50) NULL,
	[comment] [nchar](150) NULL,
	[Frame_id] [int] NULL,
	[Menu_Frame] [nchar](25) NULL
) 

Преимущества:
1. Теперь 90% функционала программы не привязано к самой базе данных.
2. Функционал теперь может отличатся для каждого клиента.
3. Функционал можно менять под каждого клиента.
4. Новый функционал использует отдельные скрипты.
15 май 15, 14:54    [17645650]     Ответить | Цитировать Сообщить модератору
 Re: Организация обновлений программы  [new]
Arm79
Member

Откуда: МО, Раменское
Сообщений: 3695
tiproktikum
Пишу программу на Delphi

Вот про Delphi ничего не скажу, а так:

1) У Entity Framework есть Database Migrations
2) в студии есть тип проектов Sql Server Database Project (SSDT) - которые умеют накатывать инкрементальные изменения
3) Есть куча сторонних фреймворков по версионной миграции
15 май 15, 15:42    [17646100]     Ответить | Цитировать Сообщить модератору
 Re: Организация обновлений программы  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21242
Okmor
1. Выбросить все скрипты из программы.
2. Запихнуть все скрипты в базу.

Ага... у клиента старая версия базы, со старыми версиями скриптов... и чё делать?
15 май 15, 15:50    [17646146]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить