本番データベースと開発データベースを手動で同期させるのは本当に苦痛です。
2つのデータベースの同期を維持できるツールはありますか?驚くべきLaravelフレームワークの移行のようなものですか?
MySQLとPHPを使用しています。私はあちこちで検索しましたが、その仕事に適したツールを見つけることができませんでした。
本番データベースと開発データベースを手動で同期させるのは本当に苦痛です。
2つのデータベースの同期を維持できるツールはありますか?驚くべきLaravelフレームワークの移行のようなものですか?
MySQLとPHPを使用しています。私はあちこちで検索しましたが、その仕事に適したツールを見つけることができませんでした。
あなたは間違いなくphinxを見てください。以下は、MySQL と PHP を使用して実行した複雑なデータベース移行手順の例です: https://coderwall.com/p/v3qg2q
私が間違っていなければ、データベースのバージョン管理を作成してスキーマの変更を追跡するためのツールが必要です。Cygnite Migration コマンドを使用できます。使い方が簡単で、仕事が楽になります。
ご参考までに-
あなたが何を望んでいるのか正確には明らかではありません...
このスレッドを見てください: How to synchronize development and production database
rubyrep http://www.rubyrep.org/を使用してみてください。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 を利用します。
幸運を
2つのDBを同一にしたい場合は、本番環境をマスター、開発サーバーをスレーブとしてMySQLレプリケーションを使用してみませんか。