3

インターネット上のローカル部分とリモート部分の 2 つの部分を持つ Web サイトを開発しようとしています。

ユーザーはローカル Web サイトを毎日更新し、リモート Web サイトはローカル部分で同期する必要があります (または、ユーザーが手動で行うこともできます)。

この Web サイトにはmysql、4 つまたは 5 つのテーブルといくつかの画像をファイルとして含む 1 つのデータベースが含まれています。

現在、この画像または行が新しいというシステムを理解するための最良の方法を探しているので、挿入するか、変更されているので更新してください。

ファイルの名前を保持するために、すべてのデータベースと別のデータベースのフィールドとしてtimestampランダムに考えています。md5したがって、それらを確認し、1 つ (タイムスタンプまたはランダム md5) が変更された場合は、それらの行を更新します。

これは良い方法ですか、それとももっと簡単な方法はありますか? Yii または CodeIgniter と Mysql データベースを使用してこの Web サイトを開発したいと考えています。

4

2 に答える 2

4
  1. MySQL レプリケーションをセットアップします。
  2. リモート サーバーがローカル サーバーに接続できない場合は、一般ログをオンにして、リモート サーバーで定期的に再生します。
  3. これらのいずれも実行できない場合は、「ON UPDATE CURRENT_TIMESTAMP」で TIMESTAMP タイプの「last_modified」列を作成します。この列を直接更新する必要はありません。行を変更すると自動的に更新されます。これにより、変更された行の選択/ダンプを実行し、リモート ホストでそれらの行を更新するスクリプトを作成できます。
于 2012-08-10T16:49:11.517 に答える
3

ファイルの場合は、rsyncを使用します。

rsync -avz /www/development USERNAME@REMOTE_HOST:/www/production/

MySQL の場合、SQL テーブルを更新する cron スクリプトを作成します。

mysqldump -al --password=LOCAL_PASS --add-drop-table DB_NAME TABLE_NAME | mysql -h REMOTE_HOST --password=REMOTE_PASS DB_NAME;

一度に個々のレコードを取得したい場合は、タイムスタンプのアイデアが機能します。次に、last_sync レコードを保持し、date > last_sync のテーブルから * を選択する必要があります。

この猫の皮を剥ぐ方法はたくさんあります。

于 2012-08-10T16:49:07.057 に答える