Topic: Обновление проекта (программы) после внесения дополнений с сохранениех

Добрый день!
Подскажите пожалуйста как производить правильно обновление проекта (программы) после внесения в нее доработок, так, чтобы сохранились ранее внесенные в программу данные?

Re: Обновление проекта (программы) после внесения дополнений с сохранениех

blackjurist wrote:

Добрый день!
Подскажите пожалуйста как производить правильно обновление проекта (программы) после внесения в нее доработок, так, чтобы сохранились ранее внесенные в программу данные?

Обновлять все кроме sqlite.db
если в бд будут создаваться  новые таблицы и поля, программа создаст их при запуске..

Re: Обновление проекта (программы) после внесения дополнений с сохранениех

Спасибо

Re: Обновление проекта (программы) после внесения дополнений с сохранениех

Если была изменена структура БД, то программа НЕ создает автоматически недостающие поля и таблицы в старом файле sqlite.db

Dmitry.

Re: Обновление проекта (программы) после внесения дополнений с сохранениех

Как же тогда быть?

Re: Обновление проекта (программы) после внесения дополнений с сохранениех

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


Либо рабочий файл базы данных модифицировать вручную, чтобы его структура соотвествовала структуре новой версии проекта, это можно сделать например программой SQLite Studio.


Еще один вариант, это записать в базу данных номер ее версии, а в проекте написать скрипт, который будет обновлять структуру БД до необходимой версии, удаляя или добавляя таблицы и поля.

Dmitry.

Re: Обновление проекта (программы) после внесения дополнений с сохранениех

Еще один вариант, это свои процедуры импорта/экспорта. После обновления программы (включая файл sqlite,db) программа импорта должна корректно загрузить в новую структуру экспортированные данные из старой версии. В зависимости от вида изменений структуры БД  это может быть тривиальной задачей, но бывают случаи, когда скрипт импорта получается довольно мудреным.

Визуальное программирование: блог и телеграм-канал.

Re: Обновление проекта (программы) после внесения дополнений с сохранениех

DriveSoft wrote:

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


Либо рабочий файл базы данных модифицировать вручную, чтобы его структура соотвествовала структуре новой версии проекта, это можно сделать например программой SQLite Studio.


Еще один вариант, это записать в базу данных номер ее версии, а в проекте написать скрипт, который будет обновлять структуру БД до необходимой версии, удаляя или добавляя таблицы и поля.

А как выглядит этот скрипт? Пример для MySQL

Re: Обновление проекта (программы) после внесения дополнений с сохранениех

senseyesenseye1983 wrote:
DriveSoft wrote:

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


Либо рабочий файл базы данных модифицировать вручную, чтобы его структура соотвествовала структуре новой версии проекта, это можно сделать например программой SQLite Studio.


Еще один вариант, это записать в базу данных номер ее версии, а в проекте написать скрипт, который будет обновлять структуру БД до необходимой версии, удаляя или добавляя таблицы и поля.

А как выглядит этот скрипт? Пример для MySQL

Выглядеть скрипт может по разному. Тут все от ваших желаний и потребностей зависит.. Суть его в том, чтобы последовательно выполнить определенные SQL-команды, которые приведут структуру базы к нужному виду, например:

-- добавление поля
-- ALTER TABLE <имя таблицы> ADD <имя поля> <тип> DEFAULT <значение по умолчанию>;
ALTER TABLE car ADD door INT DEFAULT NULL;
-- удаление поля
-- ALTER TABLE <имя таблицы> DROP COLUMN <имя поля>;
ALTER TABLE car DROP COLUMN door;
Визуальное программирование: блог и телеграм-канал.