6

私は現在、移行をサポートするフレームワークを学んでいます。

私の質問は、移行を使用することの主な利点は何ですか?

データベース管理ツールを使用して、テーブルを追加/削除/変更したり、他の操作を直接実行したりしないのはなぜですか?または、.sqlファイルをエクスポートして、チームがデータベースにインポートしないのはなぜですか?

4

2 に答える 2

8

移行は展開プロセスの一部です。したがって、移行のメリット(一般的に)は次のとおりです。

  • 手動で行う必要はありません(展開時にスキーマの変更を遅かれ早かれ忘れてしまう可能性があるため)
  • ローカルでテストできます(遅かれ早かれ間違いを犯す可能性があるため)
  • チームメンバーにローカルデータベースを手動で変更するように指示する必要はありません(それは単に煩わしいためです)、または新しいダンプをインポートする必要はありません(再び...)
  • 複数の環境(ステージ、製品、テスト)がある場合は、任意のシステムでこの手順を実行する必要があります。これは間違いの可能性を高めます
  • おそらく、(おそらく古い)開発データベースをライブシステムにインポートしたくないでしょう;)

プロジェクトの開始時には、スキーマは単純でデータベースは小さい場合がありますが、これはこれにとどまらないことに注意してください。遅かれ早かれ(;))インポートに時間がかかる巨大なデータベースに直面するでしょう。

追加:適切な移行には通常、エラーが発生した場合の「ダウングレード」ステップがあります。デプロイメントがうまくいかない場合のアプローチでは、データベースの変更を手動で元に戻す必要があり、これはさらにエラーが発生しやすくなります。

于 2013-02-10T11:55:31.643 に答える
4

それらをデータベースのバージョン管理と考えてください。また、PHPMyAdminで行ったことを覚えておく必要がなく、変更を複数の環境(開発環境、テスト/本番サーバーなど)に簡単かつ自動で展開できます。

DBに加える必要のある個々の変更を個々に伝えるよりも、DBを移行する必要があることを誰かに伝える方が簡単です。

于 2013-02-10T11:55:18.023 に答える