3

我正在尝试开发一个网站,它有两个部分:本地部分和互联网上的远程部分。

用户每天更新本地网站,远程网站应由本地部分自行同步(也可以由用户手动完成)。

该网站包含一个mysql数据库,其中包含 4 或 5 个表格和一些图像作为文件。

现在我正在寻找最好的方法来理解这个图片或行是新的系统,所以你应该插入它或者它已经被修改了,所以更新它。

我正在考虑timestamp随机md5作为每个数据库和另一个数据库中的字段来保存文件名。因此,检查它们,如果一件事(时间戳或随机 md5)发生变化,请更新这些行。

这是一个好方法,还是有更简单的方法来做到这一点?我想用 Yii 或 CodeIgniter 和 Mysql 数据库开发这个网站。

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 回答