Một vấn đề thường hay gặp phải trong lập trình và sử dụng WordPress là việc đồng bộ Database giữa 2 hoặc nhiều website với nhau. Thông thường trong quá trình khách hàng sử dụng đồng thời cũng muốn thêm các tính năng mới,… Cách làm phổ biến được sử dụng ở đây là Export database từ 1 website sau đó import vào database của website khác. Việc làm này mất khá nhiều thời gian, đặc biệt với những site có cơ sở dữ liệu lớn. Việc này thường phải làm lặp đi lặp lại nhiều lần mỗi khi chúng ta đồng bộ cơ sở dữ liệu. Trong bài viết này sẽ hướng dẫn các bạn sử dụng 1 plugin miễn phí để thực hiện việc này 1 cách nhanh chóng là WP DB Sync có thể tải project tại đây: https://github.com/wp-sync-db/wp-sync-db. Đây là plugin custom lại từ một plugin khác được trả phí đó là: WP Migrate DB Pro Tuy nhiên tính năng và hoạt động của nó là đủ để đáp ứng yêu cầu trong phát triển WordPress website.
1. Một số các tính năng đặc biệt của WP DB Sync
- Chọn lọc đồng bộ (Selective Sync):
- Có thể chọn các bảng dữ liệu đồng bộ đơn giản.
- Đồng bộ hóa 2 chiều
- Pull: thay thế Local DB bằng Remote DB: Nếu bạn có test site hoặc develop site ở Local và cần dữ liệu mới nhất ở Production Server thì có thể cài plugin này ở 2 site và pull dữ liệu từ Production site về Local site.
- Push: thay thế Remote BN bằng Local DB: Nếu bạn đang phát triển tính năng mới cho site và bạn cần cài đặt thử nghiệm trước khi gửi các cài đặt lên Production site. Sau khi hoàn thành các cài đặt thử nghiệm này trên Local site bạn có thể dễ dàng gửi các cài đặt này lên Production site bằng cách Push lên Production site để thay thế Database trên Production site bằng Database trên Local site.
- Database Export & Backup
- Không chỉ có khả năng Pull và Push database, WP DB Sync còn có khả năng Export database thành SQL file để backup mà không cần SSH đến server hoặc quản lý thông qua PHPmyadmin
- Encrypted Transfers
- Tất cả dữ liệu được gửi qua SSL để ngăn không cho dữ liệu của bạn được đọc trong khi đồng bộ. WP Sync DB cũng sử dụng mã hóa HMAC để ký và xác minh mọi yêu cầu. Điều này đảm bảo rằng tất cả các yêu cầu đến từ một máy chủ được ủy quyền và không bị giả mạo trên đường chuyển dữ liệu
- Tự động tìm và thay thế (Automatic Find & Replace)
- Khi đồng bộ WordPress website đường dẫn trong các bài viết, widget, menu cần được thay thế bằng đường dẫn mới. Việc làm này thủ công sẽ rất nhàm chán, tuy nhiên WB Sync DB sẽ giúp chúng ta làm việc này tự động và nhanh chóng.
- Đã thử nghiệm với Database lớn
- Plugin này đã được thử nghiệm với các website có database lên tới vài GB.
- Có thể đồng bộ cả File ảnh:
- Sử dụng thêm addons: https://github.com/wp-sync-db/wp-sync-db-media-files để đồng bộ media file
2. Cài đặt
- Cài đặt Git Updater: https://github.com/afragen/github-updater
- Cài đặt WP DB Sync: https://github.com/wp-sync-db/wp-sync-db. Có thể sử dụng Git Updater để cập nhật bản WP DB Sync mới nhất (không cần tải lại file zip)
- Truy cập vào WP DB Sync menu dưới menu Tools
- Cài đặt WP DB Sync Media Files: https://github.com/wp-sync-db/wp-sync-db-media-files
3. Thử nghiệm
Giả định chúng ta đã có 2 website: 1 website là Production Website, 1 webiste là Develop website trên Localhost. Chú ý: trong quá trình Pull và Push bạn cần cài đặt trong Tab Settings để 2 chế độ này có thể hoạt động.
3.1. Pull Database từ Production Website về Develop website
- Bước 1: Tạo 1 bài viết có ảnh thumbnail trên Production site
- Bước 2: Đi đến Tools -> Migrate DB. Chọn tab Setting và Copy Connection Info
- Bước 3: Đăng nhập vào Website trên Localhost và chọn Pull: điền Connnection Info vừa copy trên Production site vào đây Điền các thông tin cần thiết, ở đây thì WP Sync DB đã tự động điền các thông tin cần thiết. Các lựa chọn khác có thể dễ dàng hiểu theo mô tả. Bấm Migrate DB & Save button. Và đây là kết quả sau khi Pull về từ Production site. Các bạn có thể vào phần thumbnail để kiểm tra lại xem Media đã được đồng bộ hay chưa
3.2. Push Database từ Develop website lên Production Website
- Bước 1: Tạo bài viết có ảnh thumbnail trên Develop site
- Bước 2: Đăng nhập vào Website trên Localhost và chọn Pull: điền Connnection Info vừa copy trên Production site vào đây. Chú ý: cần allow Push Request trong Settings tab của Production site Điền các thông tin cần thiết và thực hiện Migrate DB. Kết quả sau khi Push từ Develop site lên Production site
3.3. Đánh giá
- Như vậy ở trên chúng ta đã tìm hiểu về WP DB Sync để đồng bộ database giữa các Website WordPress thành công. Có thể dựa trên hoạt động của plugin này để xây dựng 1 Work Flow để phát triển WordPress website theo nhóm để giúp cho quá trình làm việc hiệu quả hơn.