WP Manifestindependent plugin directory
manifest / updates / vig-sync

VIG Sync releasesself-updates

Đồng bộ database + code giữa production và staging: pull (làm mới staging) và push pipeline (deploy lên prod, có pre-check/backup/post-check/auto-rollback). Built by VIG Digital.

by VIG Digital · github.com/vigdigital/vig-sync · website

★ 0stars
9release downloads
0forks

Install

The author publishes release zips, so WP-CLI can install straight from GitHub:

wp plugin install https://github.com/vigdigital/vig-sync/releases/download/v0.7.3/vig-sync.zip

Ships its own WordPress updater (Plugin Update Checker), so new versions show up under Dashboard → Updates.

Đồng bộ database giữa production và staging theo nhóm dữ liệu, có dry-run và backup tự động — công cụ nội bộ của VIG Digital.

Đây là công cụ dev/ops (cần cấu hình wp-config), không phải plugin "cài là chạy" cho người dùng cuối.

v1 làm được gì

  • Pull production → staging: kéo dữ liệu thật từ prod về staging để test.
  • Chọn theo 3 nhóm thô thay vì 200 table:
    • Users & phân quyền (users + usermeta, tự sửa prefix-key)
    • Nội dung (bài viết, trang, sản phẩm, đơn hàng, ảnh, menu, danh mục, bình luận — gồm cả WooCommerce)
    • Settings (một số tuỳ chọn an toàn, không đụng URL/plugin/theme)
  • Dry-run: xem trước số dòng sẽ thay đổi, chưa ghi gì.
  • Backup bắt buộc các bảng đích trước khi ghi (.sql.gz ngoài webroot, tự xoay vòng) + khôi phục 1 chạm.
  • Tự đổi URL (serialized-safe, 2-pass cho Elementor) và sửa prefix-key sau khi copy.

Yêu cầu môi trường

  • prod & staging cùng một MySQL server (cùng hosting/cPanel), 2 database riêng.
  • Chỉ cần PHP mysqli (không cần SSH/WP-CLI/shell — hợp hosting CageFS).
  • Cài plugin ở site staging.

Cài đặt

  1. Tải zip từ Releases → Plugins → Add New → Upload → Activate (ở site staging).
  2. Thêm cấu hình vào wp-config.php của staging (trỏ sang DB production):
define( 'VIG_SYNC_ROLE', 'staging' );          // vai trò site này (bắt buộc = staging ở v1)
define( 'VIG_SYNC_PEER_DB_HOST', 'localhost' ); // hoặc 'host:port' / 'host:/path/mysqld.sock'
define( 'VIG_SYNC_PEER_DB_NAME', 'prod_db_name' );
define( 'VIG_SYNC_PEER_DB_USER', 'prod_db_user' );
define( 'VIG_SYNC_PEER_DB_PASS', 'prod_db_pass' );
define( 'VIG_SYNC_PEER_URL',    'https://prod-domain.com' );
// tuỳ chọn:
// define( 'VIG_SYNC_PEER_PREFIX', 'wp_' );        // nếu không đặt sẽ tự dò
// define( 'VIG_SYNC_BACKUP_DIR', '/home/acc/vig-sync-backups' ); // mặc định: cạnh wp-content
  1. Vào VIG Toolkit → Sync → tab Chạy đồng bộ. Kết nối "✓" là sẵn sàng.

Quy trình an toàn

  1. Xem trước (Dry-run) để đối chiếu số dòng prod vs staging.
  2. Bấm Chạy → plugin tự backup bảng đích, copy trong transaction, rồi fixup URL + prefix-key.
  3. Nếu sai → tab Nhật ký có nút Khôi phục từ backup.
  4. Nếu dùng Elementor: chạy Elementor → Tools → Regenerate CSS & Data (plugin sẽ nhắc).

⚠️ Chạy thật ghi đè dữ liệu staging bằng dữ liệu production. Dữ liệu chỉ có ở staging sẽ mất — đúng ý khi "làm mới staging". Nút Chạy bị khoá nếu VIG_SYNC_ROLE ≠ staging.

Push staging → production (v0.2) — cài trên production

Chiều ngược lại: đẩy code (theme + plugin) và (tuỳ chọn) DB từ staging lên prod, qua pipeline có rào an toàn. Cài plugin trên production, thêm wp-config:

define( 'VIG_SYNC_ROLE', 'prod' );
define( 'VIG_SYNC_ALLOW_PUSH', true );
define( 'VIG_SYNC_PEER_PATH', '/home/acc/staging.domain.com' ); // docroot staging (đọc file)
// + VIG_SYNC_PEER_DB_* trỏ sang DB staging (nếu push cả DB)

Tab Push → quy trình 5 bước tự động:

  1. Pre-check — liệt kê file/plugin/DB sẽ đổi (chưa ghi gì).
  2. Backup DB + file hiện tại của prod (ngoài webroot).
  3. Push — copy file thay đổi (+ active_plugins / DB nếu chọn).
  4. Post-check — HTTP kiểm tra site còn sống, không lỗi.
  5. Auto-rollback — nếu post-check fail thì tự khôi phục DB + file về trạng thái trước.

⚠️ Mặc định push chỉ CODE. Push DB ghi đè data live của prod (đơn hàng/user mới) → tách riêng, cảnh báo đỏ, phải tick + gõ PUSH-PROD xác nhận. Xoá file thừa & đồng bộ active_plugins là tuỳ chọn (mặc định tắt).

Chạy headless / định kỳ (v0.3)

WP-CLI:

wp vig-sync status
wp vig-sync pull --groups=users,content --yes
wp vig-sync push --dry-run                 # pre-check (mặc định chỉ code)
wp vig-sync push --code --yes
wp vig-sync restore --id=<backup>

REST (cho cron ngoài như cron-job.org / VPS trigger, không cần mở máy):

define( 'VIG_SYNC_REST_TOKEN', 'chuoi-bi-mat-dai' );      // bắt buộc để bật REST
// define( 'VIG_SYNC_ALLOW_REMOTE_PUSH', true );          // nếu muốn push qua REST
curl -X POST "https://staging.domain.com/wp-json/vig-sync/v1/run" \
  -H "X-VIG-Sync-Token: chuoi-bi-mat-dai" -H "Content-Type: application/json" \
  -d '{"direction":"pull","groups":["users","content"]}'

Lịch (wp-cron): tab Lịch → thêm job (chiều + nhóm + tần suất). Pull tự chạy; push định kỳ cần define( 'VIG_SYNC_ALLOW_SCHEDULED_PUSH', true ). Vì wp-cron chỉ chạy khi có traffic, nên ghép cron ngoài gọi wp-cron.php hoặc REST /run.

Chưa có (roadmap)

  • Tách riêng WooCommerce / theo post_type (scoped-row).
  • Đồng bộ media (uploads đang symlink chung nên chưa cần).
  • Transport REST cross-server (khi prod & staging khác hosting).

Dành cho developer / maintainer

📚 Về sau, tài liệu kỹ thuật đầy đủ sẽ chuyển lên vigdigital.com — khi đó mục này rút gọn thành một liên kết.

Kiến trúc: includes/Sync_Engine.php điều phối plan()/execute(); transport includes/Transport/DB_Transport.php (2 mysqli, đọc-source/ghi-target, chunked); Backup.php (gzip dump ngoài webroot + rotation + restore); Search_Replace.php (serialized-safe) + Fixups.php (prefix-key + URL 2-pass); Presets.php (nhóm thô). UI dưới includes/Admin/.

Tự cập nhật: PUC v5.7 đọc GitHub Releases (vig_setup_updates). Repo private → cấu hình theo VIG internal ops notes.

Phát hành: bump Version: trong vig-sync.php → commit → git tag v0.1.1 && git push origin v0.1.1. GitHub Action tự build zip sạch + đính vào Release.

Rủi ro đã biết (v1): copy nguyên-bảng dùng OFFSET pagination + INSERT theo chunk trong 1 request → table rất lớn có thể chạm timeout; giảm chunk_size trong Settings. Restore đọc dump theo dòng (mỗi statement 1 dòng).

GPL-2.0-or-later © VIG Digital

Releases

13 releases. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
v0.7.3 latest
Sep 3, 2026 1mo ago
vig-sync.zip
1
Aug 31, 2026 1mo ago
vig-sync.zip
0
Aug 21, 2026 1mo ago
vig-sync.zip
3
Aug 21, 2026 1mo ago
vig-sync.zip
1
Jul 28, 2026 2mo ago
vig-sync.zip
2
Jul 17, 2026 2mo ago
vig-sync.zip
1
Jul 17, 2026 2mo ago
vig-sync.zip
0
Jul 16, 2026 2mo ago
vig-sync.zip
0
Jul 16, 2026 2mo ago
vig-sync.zip
0
Jul 16, 2026 2mo ago
vig-sync.zip
0
Jul 14, 2026 2mo ago
vig-sync.zip
0
Jul 14, 2026 2mo ago
vig-sync.zip
0
Jul 14, 2026 2mo ago
vig-sync.zip
1