8

移行は、データベース スキーマのバージョン管理を行う 1 つの方法であることは知っています。ただし、複数のプロジェクトで共有されているデータベースがあり、すべてのプロジェクトでスキーマが少し変更される可能性があります。したがって、コードのgitのようなブランチおよびマージ機能のようなものが必要になりますが、移行ではそのような機能を提供できません。では、データベース専用のバージョン管理ツールはありますか?

データベースにはlaravelとmysqlでphpを使用しており、必要に応じてpostgresqlに切り替える予定です。

4

7 に答える 7

7

.sqlプロジェクトの git リポジトリ内にすべてのセットアップファイルをセットアップできます。多くのプロジェクトがこのデータベースを使用していると述べたので、データベース専用の単一のリポジトリを使用するのが賢明かもしれません。

次のディレクトリが git によって管理されているとします。

setup.php
setup/
----- Create_database.sql
----- Create_users_table.sql
----- Create_posts_table.sql
----- Create_some_view.sql

setup.phpを使用してセットアップ ディレクトリ内のすべての.sqlファイルを実行できるようになり、データベースの展開/クローン作成が容易になりました。データベースに変更を加える必要がある場合は、git に既に組み込まれている機能を使用して、変更をこのリポジトリにブランチおよびマージするだけです。

于 2015-09-23T14:54:32.557 に答える
2

上記のように、多くのツール企業があります。個人的に私は自分のものを作成することに行きました。API dbdeploy を使用します。

動作します: インクリメンタル スクリプトを記述します 1_c_table_t.sql 2_c_uk_index_t.sql ... すべてのファイル番号を格納するデータベース内のテーブルが必要です。SQL を正常に挿入した後、バージョン テーブルに挿入します。

複数のチームが取り組んでおり、github にリポジトリを作成し、すべての開発者リポジトリはそれに依存しています。api は最初の数字を使用してスクリプトを識別します。

ありがとう

于 2015-09-23T20:50:35.480 に答える
1

別の回答で述べたように、現在dbv.phpを使用しているPhinxを試すことができますが、Phinxには、目標を達成するのに役立つより高度なオプションがあるようです。ドキュメントはhttp://docs.phinx.org/en/latest/にあります。また、著者によるサンプル プロジェクトのウォークスルーはこちらにあります。

于 2015-09-29T08:44:10.243 に答える
1

Phinx のようなツールを使用すると、より多くのオプションと機能を利用できます。github リポジトリへのリンクhttps://github.com/robmorgan/phinx

于 2015-09-29T22:55:03.753 に答える
0

答えは簡単です。.sqldb スキーマを指定するファイルを使用するだけです。必要に応じて、.sql ファイルを分岐して変更します。データベースやテーブルの作成など、必要なものは何でも指定できます。

何かを開始する必要がある場合はmysqldump、データベースで a を実行して、それから開始できます。ファイルをソース管理ブランチに配置した後、その後は簡単にマージできます。

もう 1 つのオプションは、ベース db ダンプを作成し、必要に応じて db をカスタマイズできるさまざまな変更スクリプトを用意することです。さまざまなプロジェクトで db ダンプをロードしてから、適切なスクリプトを適用します。

于 2015-09-29T21:50:55.280 に答える