11

本番データベースと開発データベースを手動で同期させるのは本当に苦痛です。

2つのデータベースの同期を維持できるツールはありますか?驚くべきLaravelフレームワークの移行のようなものですか?

MySQLとPHPを使用しています。私はあちこちで検索しましたが、その仕事に適したツールを見つけることができませんでした。

4

7 に答える 7

13

あなたは間違いなくphinxを見てください。以下は、MySQL と PHP を使用して実行した複雑なデータベース移行手順の例です: https://coderwall.com/p/v3qg2q

于 2013-03-24T11:59:29.507 に答える
1

私が間違っていなければ、データベースのバージョン管理を作成してスキーマの変更を追跡するためのツールが必要です。Cygnite Migration コマンドを使用できます。使い方が簡単で、仕事が楽になります。

ご参考までに-

移行とシードのビデオ チュートリアル

データベース移行ツール

于 2014-08-30T22:37:29.007 に答える
0

あなたが何を望んでいるのか正確には明らかではありません...

  • 製品から開発への片道?
  • データまたはddlまたはその両方?

このスレッドを見てください: How to synchronize development and production database

于 2012-12-08T06:43:01.743 に答える
0

rubyrep http://www.rubyrep.org/を使用してみてください。2 つのデータベース間で継続的にレプリケートできます。

于 2012-12-08T18:24:20.763 に答える
-2

1. ワイルドカードまたは特別なIPアドレスを使用して、リモートまたは本番データベースがリモート接続を受け入れるようにします! ある種の cpanel または構成ファイルを介して !

2. 「db:sync」のように db artisan コマンドを拡張できます。

3. コマンドコード (まだテストされていません):

$db_local = Config::get('database.'.env('DB_CONNECTION', 'db_local')); 
$dump = "tmp.db";
exec("mysqldump --user={$db_local['username']} --password='{$db_local['password']}' --host={$db_local['host']} {$db_local['database']} --ignore-table={$db['database']}.some_table > $dump");
$db_remote = Config::get('database.'.env('DB_CONNECTION', 'db_remote')); 
exec("mysql --user={$db_remote['username']} --password='{$db_remote['password']}' --host={$db_remote['host']} {$db_remote['database']} < $dump");

通常は機能することを意図しているため、機能チェックは追加しませんでした。

たとえば、コマンドの代わりに、イベント、cron ジョブ、リスナーを使用して自動化を追加できます...多くのオプションがありますが、主なロジック部分のトリックは次のとおりです: 2 db 接続の環境変数名を定義し、アプリ構成データベースで.php、接続資格情報などを定義し、最後に exec、mysqldump & mysql を利用します。

幸運を

于 2015-11-24T02:02:37.737 に答える
-3

2つのDBを同一にしたい場合は、本番環境をマスター、開発サーバーをスレーブとしてMySQLレプリケーションを使用してみませんか。

MySQLレプリケーションドキュメント

于 2012-12-08T06:36:23.097 に答える