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

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

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

Так dbms же у меня обычно есть таблица oracle в бд - 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: $');

Затем sql-syntax я добавляю в раздел обновления database-structure следующее:

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

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

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

sql

database

oracle

version-control

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

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