Существует ли система контроля версий для изменений структуры базы данных?

Я немного старомоден, так sql как использую исходные файлы vcs для создания базы данных. На vcs самом деле есть 2 файла - project-database.sql revision-control и project-updates.sql - первый database для схемы и постоянных данных, а sql второй для модификаций. Конечно, оба database-structure находятся под контролем источника.

При sql-select изменении базы данных я сначала version-control обновляю основную схему в database-structure файле project-database.sql, а sql-syntax затем копирую соответствующую revision-control информацию в файл project-updates.sql, например database операторы ALTER TABLE. Затем database я могу применить обновления source-control к базе данных разработки, протестировать, повторять, пока version-control все не будет хорошо. Затем sqlselect верните файлы, снова протестируйте database и примените к рабочей среде.

Так vcs же у меня обычно есть таблица sql-select в бд - Config - типа:

SQL

CREATE TABLE Config
(
    cfg_tag VARCHAR(50),
    cfg_value VARCHAR(100)
);

INSERT INTO Config(cfg_tag, cfg_value) VALUES
( 'db_version', '$Revision: $'),
( 'db_revision', '$Revision: $');

Затем oracle я добавляю в раздел обновления oracle следующее:

UPDATE Config SET cfg_value='$Revision: $' WHERE cfg_tag='db_revision';

db_version изменяется только sql-select при воссоздании базы данных, а database-structure db_revision дает мне указание на то, насколько database-structure db отличается от базовой database линии.

Я мог бы хранить обновления dbms в отдельных файлах, но я vcs решил смешать их все вместе source-control и использовать вырезание sql и вставку для извлечения database-structure соответствующих разделов. В oracle порядке еще немного уборки, т.е. удалите sqlselect ':' из $Revision 1.1$, чтобы oracle заморозить их.

sql

database

oracle

version-control

2022-08-02T18:14:24+00:00
Вопросы с похожей тематикой, как у вопроса:

Существует ли система контроля версий для изменений структуры базы данных?